Chaotix Hacking (formerly Chaotix Level Editing)

Discussion in 'Engineering & Reverse Engineering' started by Andlabs, Jan 29, 2010.

Thread Status:
Not open for further replies.
  1. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    Cool. The compression routine decompresses to... the same format used by the characters. The character art is written directly to the same output buffer, <a href="http://forums.sonicretro.org/index.php?showtopic=7492&hl=" target="_blank">exactly to JJF's specification</a>. I'll document this compression format over the next few hours and show you all what's involved.
     
  2. MarkeyJester

    MarkeyJester

    My predecessors have nothing on me. Resident Jester
    First thing's first:

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec--><!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm">ROM:00891D2A <span style="color: #adadad; font-style: italic;">; =============== S U B R O U T I N E =======================================</span>
    ROM:00891D2A
    ROM:00891D2A
    ROM:00891D2A DoObjectActions: <span style="color: #adadad; font-style: italic;">; CODE XREF: DoGameMode+1AD4p</span>
    ROM:00891D2A <span style="color: #adadad; font-style: italic;">; sub_8B192A+14Ep ...</span>
    ROM:00891D2A <span style="color: #00bfff;">clr</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFFEC3</span><span style="">)</span>.<span style="color: #00bfff;">l</span>
    ROM:00891D30 <span style="color: #00bfff;">lea</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFE02C</span><span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a6</span>
    ROM:00891D34
    ROM:00891D34 loc_891D34: <span style="color: #adadad; font-style: italic;">; CODE XREF: DoObjectActions+2Ej</span>
    ROM:00891D34 <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">0</span><span style="">(</span><span style="font-weight:bold;">a6</span><span style="">)</span>,<span style="font-weight:bold;">d0</span>
    ROM:00891D38 <span style="color: #00bfff;">bne</span>.<span style="color: #00bfff;">s</span> loc_891D46
    ROM:00891D3A <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFFEC3</span><span style="">)</span>.<span style="color: #00bfff;">l</span>,<span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFFEC2</span><span style="">)</span>.<span style="color: #00bfff;">l</span>
    ROM:00891D44 <span style="color: #00bfff;">rts</span>
    ROM:00891D46 <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    ROM:00891D46
    ROM:00891D46 loc_891D46: <span style="color: #adadad; font-style: italic;">; CODE XREF: DoObjectActions+Ej</span>
    ROM:00891D46 <span style="color: #00bfff;">movea</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="font-weight:bold;">a6</span>
    ROM:00891D48 <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d0</span>
    ROM:00891D4A <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">6</span><span style="">(</span><span style="font-weight:bold;">a6</span><span style="">)</span>,<span style="font-weight:bold;">d0</span>
    ROM:00891D4E <span style="color: #00bfff;">lea</span> ObjectActions,<span style="font-weight:bold;">a0</span>
    ROM:00891D52 <span style="color: #00bfff;">adda</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="font-weight:bold;">a0</span>
    ROM:00891D54 <span style="color: #00bfff;">movea</span>.<span style="color: #00bfff;">l</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>,<span style="font-weight:bold;">a0</span>
    ROM:00891D56 <span style="color: #00bfff;">jsr</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>
    ROM:00891D58 <span style="color: #00bfff;">bra</span>.<span style="color: #00bfff;">s</span> loc_891D34
    ROM:00891D58 <span style="color: #adadad; font-style: italic;">; End of function DoObjectActions</span></pre><!--gc2--><!--Uk9NOjAwODkxRDJBIDsgPT09PT09PT09PT09PT09IFMgVSBCIFIgTyBVIFQgSSBOIEUgPT09PT09PT09
    PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJPTTowMDg5MUQyQQpST006MDA4OTFEMkEKUk9NO
    jAwODkxRDJBIERvT2JqZWN0QWN0aW9uczogICAgICAgICAgICAgICAgICAgICAgICA7IENPREUgWFJFRj
    ogRG9HYW1lTW9kZSsxQUQ0GHAKUk9NOjAwODkxRDJBICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
    gICAgICAgICAgICA7IHN1Yl84QjE5MkErMTRFGXAgLi4uClJPTTowMDg5MUQyQSAgICAgICAgICAgICAg
    ICAgY2xyLmIgICAoJiMwMzY7RkZGRkZFQzMpLmwKUk9NOjAwODkxRDMwICAgICAgICAgICAgICAgICBsZ
    WEgICAgICgmIzAzNjtGRkZGRTAyQykudyxhNgpST006MDA4OTFEMzQKUk9NOjAwODkxRDM0IGxvY184OT
    FEMzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IENPREUgWFJFRjogRG9PYmplY3RBY3Rpb25
    zKzJFGWoKUk9NOjAwODkxRDM0ICAgICAgICAgICAgICAgICBtb3ZlLncgIDAoYTYpLGQwClJPTTowMDg5
    MUQzOCAgICAgICAgICAgICAgICAgYm5lLnMgICBsb2NfODkxRDQ2ClJPTTowMDg5MUQzQSAgICAgICAgI
    CAgICAgICAgbW92ZS5iICAoJiMwMzY7RkZGRkZFQzMpLmwsKCYjMDM2O0ZGRkZGRUMyKS5sClJPTTowMD
    g5MUQ0NCAgICAgICAgICAgICAgICAgcnRzClJPTTowMDg5MUQ0NiA7IC0tLS0tLS0tLS0tLS0tLS0tLS0
    tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpST006
    MDA4OTFENDYKUk9NOjAwODkxRDQ2IGxvY184OTFENDY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI
    CA7IENPREUgWFJFRjogRG9PYmplY3RBY3Rpb25zK0UYagpST006MDA4OTFENDYgICAgICAgICAgICAgIC
    AgIG1vdmVhLncgZDAsYTYKUk9NOjAwODkxRDQ4ICAgICAgICAgICAgICAgICBtb3ZlcSAgICMwLGQwClJ
    PTTowMDg5MUQ0QSAgICAgICAgICAgICAgICAgbW92ZS53ICA2KGE2KSxkMApST006MDA4OTFENEUgICAg
    ICAgICAgICAgICAgIGxlYSAgICAgT2JqZWN0QWN0aW9ucyxhMApST006MDA4OTFENTIgICAgICAgICAgI
    CAgICAgIGFkZGEudyAgZDAsYTAKUk9NOjAwODkxRDU0ICAgICAgICAgICAgICAgICBtb3ZlYS5sIChhMC
    ksYTAKUk9NOjAwODkxRDU2ICAgICAgICAgICAgICAgICBqc3IgICAgIChhMCkKUk9NOjAwODkxRDU4ICA
    gICAgICAgICAgICAgICBicmEucyAgIGxvY184OTFEMzQKUk9NOjAwODkxRDU4IDsgRW5kIG9mIGZ1bmN0
    aW9uIERvT2JqZWN0QWN0aW9ucw==--><!--egc2--><!--g2--></div><!--eg2--><!--QuoteEnd--></div><!--QuoteEEnd-->
    Snap! (From Crackers)

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm"><span style="color: #adadad; font-style: italic;">; ===========================================================================</span>
    <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    <span style="color: #adadad; font-style: italic;">; Subroutine to run object routines during the game</span>
    <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    &nbsp;
    RunObjects:
    <span style="color: #00bfff;">lea</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFD858</span><span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a6</span> <span style="color: #adadad; font-style: italic;">; load ram address of first object to run??</span>
    &nbsp;
    RO_NextObj:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">$</span><span style="color: #ff0000;"><span style="color: #ff0000;">00</span></span><span style="">(</span><span style="font-weight:bold;">a6</span><span style="">)</span>,<span style="font-weight:bold;">d0</span> <span style="color: #adadad; font-style: italic;">; load ram address of next object to d0</span>
    <span style="color: #00bfff;">bne</span>.<span style="color: #00bfff;">s</span> RO_ValidObj <span style="color: #adadad; font-style: italic;">; if not null, an object is in the slot, so branch</span>
    <span style="color: #00bfff;">rts</span> <span style="color: #adadad; font-style: italic;">; return</span>
    &nbsp;
    RO_ValidObj:
    <span style="color: #00bfff;">movea</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="font-weight:bold;">a6</span> <span style="color: #adadad; font-style: italic;">; move ram address to a6</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;"><span style="color: #ff0000;">00</span></span>,<span style="font-weight:bold;">d0</span> <span style="color: #adadad; font-style: italic;">; clear d0</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">$</span><span style="color: #ff0000;"><span style="color: #ff0000;">06</span></span><span style="">(</span><span style="font-weight:bold;">a6</span><span style="">)</span>,<span style="font-weight:bold;">d0</span> <span style="color: #adadad; font-style: italic;">; load object's ID</span>
    <span style="color: #00bfff;">jsr</span> RO_Routines<span style="">(</span>pc,<span style="font-weight:bold;">d0</span>.<span style="color: #00bfff;">w</span><span style="">)</span> <span style="color: #adadad; font-style: italic;">; jump to the correct object routine</span>
    <span style="color: #00bfff;">bra</span>.<span style="color: #00bfff;">s</span> RO_NextObj <span style="color: #adadad; font-style: italic;">; loop</span>
    &nbsp;
    <span style="color: #adadad; font-style: italic;">; ===========================================================================</span></pre><!--gc2--><!--OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
    PT09PT09PT09PT09PT09PT0KOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
    S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KOyBTdWJyb3V0aW5lIHRvIHJ1biBvYmplY3
    Qgcm91dGluZXMgZHVyaW5nIHRoZSBnYW1lCjsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0
    tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpSdW5PYmplY3RzOgoJCWxl
    YQkoJiMwMzY7RkZGRkQ4NTgpLncsYTYJCTsgbG9hZCByYW0gYWRkcmVzcyBvZiBmaXJzdCBvYmplY3Qgd
    G8gcnVuPz8KClJPX05leHRPYmo6CgkJbW92ZS53ICAmIzAzNjswMChhNiksZDAJCQkJOyBsb2FkIHJhbS
    BhZGRyZXNzIG9mIG5leHQgb2JqZWN0IHRvIGQwCgkJYm5lLnMJUk9fVmFsaWRPYmoJCQkJOyBpZiBub3Q
    gbnVsbCwgYW4gb2JqZWN0IGlzIGluIHRoZSBzbG90LCBzbyBicmFuY2gKCQlydHMJCQkJCQk7IHJldHVy
    bgoKUk9fVmFsaWRPYmo6CgkJbW92ZWEudwlkMCxhNgkJCQkJOyBtb3ZlIHJhbSBhZGRyZXNzIHRvIGE2C
    gkJbW92ZXEJIyYjMDM2OzAwLGQwCQkJCQk7IGNsZWFyIGQwCgkJbW92ZS53CSYjMDM2OzA2KGE2KSxkMA
    kJCQk7IGxvYWQgb2JqZWN0JiMzOTtzIElECgkJanNyCVJPX1JvdXRpbmVzKHBjLGQwLncpCQkJOyBqdW1
    wIHRvIHRoZSBjb3JyZWN0IG9iamVjdCByb3V0aW5lCgkJYnJhLnMJUk9fTmV4dE9iagkJCQk7IGxvb3AK
    CjsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09P
    T09PT09PT09PT09PT09PT09--><!--egc2--><!--g2--></div><!--eg2-->
    Also about that compression format, would it be possible to see the format algorithm routines? because I'm just wondering if...

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm"><span style="color: #adadad; font-style: italic;">; ===========================================================================</span>
    <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    <span style="color: #adadad; font-style: italic;">; Crackers Decompression Algorithm</span>
    <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    &nbsp;
    CracDec:
    <span style="color: #00bfff;">movem</span>.<span style="color: #00bfff;">l</span> d1-<span style="font-weight:bold;">d7</span>/<span style="font-weight:bold;">a2</span>,-<span style="">(</span><span style="font-weight:bold;">sp</span><span style="">)</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>+,<span style="font-weight:bold;">d7</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d7</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">andi</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">3FFF</span>,<span style="font-weight:bold;">d7</span>
    <span style="color: #00bfff;">eor</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d7</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">rol</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">2</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">4</span>,<span style="font-weight:bold;">d1</span>
    <span style="color: #00bfff;">sub</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d2</span>,<span style="font-weight:bold;">d1</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">1</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">lsl</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="font-weight:bold;">d2</span>
    <span style="color: #00bfff;">subq</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">1</span>,<span style="font-weight:bold;">d2</span>
    &nbsp;
    loc_8856:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>+,<span style="font-weight:bold;">d5</span>
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">7</span>,<span style="font-weight:bold;">d6</span>
    &nbsp;
    loc_885A:
    <span style="color: #00bfff;">add</span>.<span style="color: #00bfff;">b</span> <span style="font-weight:bold;">d5</span>,<span style="font-weight:bold;">d5</span>
    <span style="color: #00bfff;">bcs</span>.<span style="color: #00bfff;">w</span> loc_8870
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>+,<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>+
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d6</span>,loc_885A
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d7</span>,loc_8856
    <span style="color: #00bfff;">movem</span>.<span style="color: #00bfff;">l</span> <span style="">(</span><span style="font-weight:bold;">sp</span><span style="">)</span>+,d1-<span style="font-weight:bold;">d7</span>/<span style="font-weight:bold;">a2</span>
    <span style="color: #00bfff;">rts</span>
    &nbsp;
    loc_8870:
    <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d3</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="font-weight:bold;">a0</span><span style="">)</span>+,<span style="font-weight:bold;">d3</span>
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d3</span>,<span style="font-weight:bold;">d4</span>
    <span style="color: #00bfff;">lsr</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d1</span>,<span style="font-weight:bold;">d3</span>
    <span style="color: #00bfff;">and</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d2</span>,<span style="font-weight:bold;">d4</span>
    <span style="color: #00bfff;">neg</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d3</span>
    <span style="color: #00bfff;">lea</span> <span style="color: #ff0000;">-1</span><span style="">(</span><span style="font-weight:bold;">a1</span>,<span style="font-weight:bold;">d3</span>.<span style="color: #00bfff;">w</span><span style="">)</span>,<span style="font-weight:bold;">a2</span>
    <span style="color: #00bfff;">addq</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">1</span>,<span style="font-weight:bold;">d4</span>
    &nbsp;
    loc_8882:
    <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">b</span> <span style="">(</span><span style="font-weight:bold;">a2</span><span style="">)</span>+,<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>+
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d4</span>,loc_8882
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d6</span>,loc_885A
    <span style="color: #00bfff;">dbf</span> <span style="font-weight:bold;">d7</span>,loc_8856
    <span style="color: #00bfff;">movem</span>.<span style="color: #00bfff;">l</span> <span style="">(</span><span style="font-weight:bold;">sp</span><span style="">)</span>+,d1-<span style="font-weight:bold;">d7</span>/<span style="font-weight:bold;">a2</span>
    <span style="color: #00bfff;">rts</span>
    &nbsp;
    <span style="color: #adadad; font-style: italic;">; ===========================================================================</span></pre><!--gc2--><!--OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
    PT09PT09PT09PT09PT09PT0KOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
    S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KOyBDcmFja2VycyBEZWNvbXByZXNzaW9uIE
    FsZ29yaXRobQo7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0
    tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ3JhY0RlYzoKCQltb3ZlbS5sCWQxLWQ3L2EyLC0oc3Ap
    CgkJbW92ZS53CShhMCkrLGQ3CgkJbW92ZS53CWQ3LGQyCgkJYW5kaS53CSMmIzAzNjszRkZGLGQ3CgkJZ
    W9yLncJZDcsZDIKCQlyb2wudwkjMixkMgoJCW1vdmVxCSM0LGQxCgkJc3ViLncJZDIsZDEKCQltb3ZlcQ
    kjMSxkMgoJCWxzbC53CWQxLGQyCgkJc3VicS53CSMxLGQyCgpsb2NfODg1NjoKCQltb3ZlLmIJKGEwKSs
    sZDUKCQltb3ZlcQkjNyxkNgoKbG9jXzg4NUE6CgkJYWRkLmIJZDUsZDUKCQliY3Mudwlsb2NfODg3MAoJ
    CW1vdmUuYgkoYTApKywoYTEpKwoJCWRiZglkNixsb2NfODg1QQoJCWRiZglkNyxsb2NfODg1NgoJCW1vd
    mVtLmwJKHNwKSssZDEtZDcvYTIKCQlydHMKCmxvY184ODcwOgoJCW1vdmVxCSMwLGQzCgkJbW92ZS5iCS
    hhMCkrLGQzCgkJbW92ZS53CWQzLGQ0CgkJbHNyLncJZDEsZDMKCQlhbmQudwlkMixkNAoJCW5lZy53CWQ
    zCgkJbGVhCS0xKGExLGQzLncpLGEyCgkJYWRkcS53CSMxLGQ0Cgpsb2NfODg4MjoKCQltb3ZlLmIJKGEy
    KSssKGExKSsKCQlkYmYJZDQsbG9jXzg4ODIKCQlkYmYJZDYsbG9jXzg4NUEKCQlkYmYJZDcsbG9jXzg4N
    TYKCQltb3ZlbS5sCShzcCkrLGQxLWQ3L2EyCgkJcnRzCgo7ID09PT09PT09PT09PT09PT09PT09PT09PT
    09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ==--><!--egc2--><!--g2--></div><!--eg2-->
     
  3. ICEknight

    ICEknight

    Researcher Researcher
    Once you figure out these compression algorithms, please release something we can use to quickly check other games for this kind of data, like Nemesis did with that nemsrch.exe utility.

    We might be able to find compressed graphics in games we hadn't thought of, or even within the leftovers in any prototypes.
     
  4. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->THE BIT CYCLING ALGORITHM
    =========================
    The art compression revolves around a bit cycling algorithm that I don't understand:

    &nbsp;&nbsp;&nbsp;&nbsp;bitcycle(numbits):
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output = 0
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while numbits != 0 do
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if maxbits == 0 then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxbits = 8
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datum = next byte in file << 24
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = numbits
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if numbits > maxbits then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = maxbits
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbits = numbits - counter
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until counter == 0 do
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shift datum left, saving topmost bit in carry
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotate (carry bit, output) left
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxbits = maxbits - 1
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = counter - 1



    HEADER FORMAT
    =============
    OFFSET&nbsp;&nbsp;&nbsp;&nbsp;SIZE&nbsp;&nbsp;&nbsp;&nbsp;NAME&nbsp;&nbsp;&nbsp;&nbsp;DESCRIPTION
    0&nbsp;&nbsp;&nbsp;&nbsp;Word&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of bytes in output data
    2&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Always 0x42 to identify input data as compressed
    3&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base x coordinate (x0)
    4&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r5&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for x coordinates
    5&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base y coordinate (y0)
    6&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r7&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for y coordinates
    7&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base color value (c0)
    8&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r9&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for color value

    I will use the name as a mnemonic throughout this specification. The name is the SH-2 register the value is assigned to in the original code.

    The final x1 value is
    &nbsp;&nbsp;&nbsp;&nbsp;x1 = x0 + bitcycle(r5)
    The final y1 value is
    &nbsp;&nbsp;&nbsp;&nbsp;y1 = (y0 + bitcycle(r6)) << 8

    So the program beings with

    &nbsp;&nbsp;&nbsp;&nbsp;write word x0
    &nbsp;&nbsp;&nbsp;&nbsp;write word x1
    &nbsp;&nbsp;&nbsp;&nbsp;write word (y0 << 8)
    &nbsp;&nbsp;&nbsp;&nbsp;write word y1



    DATA
    ====
    Now begins each line:

    &nbsp;&nbsp;&nbsp;&nbsp;x0_line = bitcycle(r5) + x0
    &nbsp;&nbsp;&nbsp;&nbsp;x1_line = bitcycle(r5) + x0

    If x1_line == x0_line then the art is fully decompressed. Otherwise processing continues:

    &nbsp;&nbsp;&nbsp;&nbsp;write byte x0_line
    &nbsp;&nbsp;&nbsp;&nbsp;write byte x1_line
    &nbsp;&nbsp;&nbsp;&nbsp;n_pixels_per_line = x1_line - x0_line
    &nbsp;&nbsp;&nbsp;&nbsp;y_line = (bitcycle(r7) + y0) << 8
    &nbsp;&nbsp;&nbsp;&nbsp;write word y_line
    &nbsp;&nbsp;&nbsp;&nbsp;until n_pixels_per_line == 0 do
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_color_value = bitcycle(r9) + c0
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if pixel_color_value == 0 then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_color_value = fallback_pixel_color
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write byte pixel_color_value
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_pixels_per_line = n_pixels_per_line - 1

    The fallback pixel color is either 0x80 or another color determined at runtime by the drawing routine. After the loop terminates, we go back to the x0_line/x1_line calculations; we have finished processing this line.<!--c2--></div><!--ec2-->

    I don't understand the bitcycle() routine, but there you have it. Here's the original SH-2 code:

    <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->ROM:0600075A
    ROM:0600075A; =============== S U B R O U T I N E =======================================
    ROM:0600075A
    ROM:0600075A; r1 - input data
    ROM:0600075A; r2 - output buffer
    ROM:0600075A
    ROM:0600075A DrawArt32X:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: PossiblyDoTheDrawing+22p
    ROM:0600075A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ROM:06000C0Ap
    ROM:0600075A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @(2,r1), r0
    ROM:0600075C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/eq&nbsp;&nbsp;#h'42, r0; 'B'
    ROM:0600075E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DrawUncompressedArt
    ROM:06000760&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r14, @-r15&nbsp;&nbsp;&nbsp;&nbsp;; Draws compressed art
    ROM:06000762&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r13, @-r15
    ROM:06000764&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r12, @-r15
    ROM:06000766&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r11, @-r15
    ROM:06000768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r10, @-r15
    ROM:0600076A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r9, @-r15
    ROM:0600076C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r8, @-r15
    ROM:0600076E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r7, @-r15
    ROM:06000770&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r6, @-r15
    ROM:06000772&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r5, @-r15
    ROM:06000774&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r4, @-r15
    ROM:06000776&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r2, @-r15
    ROM:06000778&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r1, @-r15
    ROM:0600077A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sts.l&nbsp;&nbsp; pr, @-r15
    ROM:0600077C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r0
    ROM:0600077E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #1, r1
    ROM:06000780&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extu.w&nbsp;&nbsp;r0, r0
    ROM:06000782&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r0, @-r15
    ROM:06000784&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    ROM:06000786&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r5
    ROM:06000788&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r6
    ROM:0600078A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r7
    ROM:0600078C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r8
    ROM:0600078E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r9
    ROM:06000790&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; #0, r14
    ROM:06000792&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r4, @r2
    ROM:06000794&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:06000796&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r5, r12
    ROM:06000798&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r4, r0
    ROM:0600079A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @(2,r2)
    ROM:0600079C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #4, r2
    ROM:0600079E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r6, r0
    ROM:060007A0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    ROM:060007A2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    ROM:060007A4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:060007A6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r7, r12
    ROM:060007A8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r6, r0
    ROM:060007AA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    ROM:060007AC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @(2,r2)
    ROM:060007AE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bra&nbsp;&nbsp;&nbsp;&nbsp; loc_60007D6
    ROM:060007B0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #4, r2
    ROM:060007B2; ---------------------------------------------------------------------------
    ROM:060007B2
    ROM:060007B2 loc_60007B2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+8Ej
    ROM:060007B2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sub&nbsp;&nbsp;&nbsp;&nbsp; r10, r0
    ROM:060007B4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r0, r10
    ROM:060007B6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:060007B8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r7, r12
    ROM:060007BA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r6, r0
    ROM:060007BC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    ROM:060007BE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @(2,r2)
    ROM:060007C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #4, r2
    ROM:060007C2
    ROM:060007C2 loc_60007C2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+78j
    ROM:060007C2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:060007C4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r9, r12
    ROM:060007C6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r8, r0
    ROM:060007C8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tst&nbsp;&nbsp;&nbsp;&nbsp; r0, r0
    ROM:060007CA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bt/s&nbsp;&nbsp;&nbsp;&nbsp;loc_60007D0
    ROM:060007CC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r10
    ROM:060007CE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r3, r0
    ROM:060007D0
    ROM:060007D0 loc_60007D0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+70j
    ROM:060007D0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @r2
    ROM:060007D2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_60007C2
    ROM:060007D4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #1, r2
    ROM:060007D6
    ROM:060007D6 loc_60007D6:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+54j
    ROM:060007D6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:060007D8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r5, r12
    ROM:060007DA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r4, r0
    ROM:060007DC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @r2
    ROM:060007DE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r0, r10
    ROM:060007E0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsr&nbsp;&nbsp;&nbsp;&nbsp; BitCycleForCompressedArt; r12 - number of bits to cycle
    ROM:060007E2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r5, r12
    ROM:060007E4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r4, r0
    ROM:060007E6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/eq&nbsp;&nbsp;r10, r0
    ROM:060007E8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_60007B2
    ROM:060007EA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @(1,r2)
    ROM:060007EC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; #0, r0
    ROM:060007EE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    ROM:060007F0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r0
    ROM:060007F2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lds.l&nbsp;&nbsp; @r15+, pr
    ROM:060007F4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r1
    ROM:060007F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r2
    ROM:060007F8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r4
    ROM:060007FA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r5
    ROM:060007FC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r6
    ROM:060007FE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r7
    ROM:06000800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r8
    ROM:06000802&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r9
    ROM:06000804&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r10
    ROM:06000806&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r11
    ROM:06000808&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r12
    ROM:0600080A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r13
    ROM:0600080C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    ROM:0600080E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r14
    ROM:06000810; ---------------------------------------------------------------------------
    ROM:06000810
    ROM:06000810 DrawUncompressedArt:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+4j
    ROM:06000810&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; ROM:06000AA8j ...
    ROM:06000810&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r4, @-r15
    ROM:06000812&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r2, @-r15
    ROM:06000814&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r1, @-r15
    ROM:06000816&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; #4, r4
    ROM:06000818
    ROM:06000818 loc_6000818:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+C4j
    ROM:06000818&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r0
    ROM:0600081A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r4
    ROM:0600081C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    ROM:0600081E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_6000818
    ROM:06000820&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #2, r2
    ROM:06000822&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loc_600083C
    ROM:06000824
    ROM:06000824 loc_6000824:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+ECj
    ROM:06000824&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sub&nbsp;&nbsp;&nbsp;&nbsp; r4, r0
    ROM:06000826&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r4
    ROM:06000828&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r4, @r2
    ROM:0600082A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #2, r2
    ROM:0600082C
    ROM:0600082C loc_600082C:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+DEj
    ROM:0600082C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    ROM:0600082E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tst&nbsp;&nbsp;&nbsp;&nbsp; r4, r4
    ROM:06000830&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bt/s&nbsp;&nbsp;&nbsp;&nbsp;loc_6000836
    ROM:06000832&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0
    ROM:06000834&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; r3, r4
    ROM:06000836
    ROM:06000836 loc_6000836:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+D6j
    ROM:06000836&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r4, @r2
    ROM:06000838&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_600082C
    ROM:0600083A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #1, r2
    ROM:0600083C
    ROM:0600083C loc_600083C:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: DrawArt32X+C8j
    ROM:0600083C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    ROM:0600083E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r0
    ROM:06000840&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r4, @r2
    ROM:06000842&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @(1,r2)
    ROM:06000844&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/eq&nbsp;&nbsp;r4, r0
    ROM:06000846&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_6000824
    ROM:06000848&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #2, r2
    ROM:0600084A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r2, r0
    ROM:0600084C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r1
    ROM:0600084E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r2
    ROM:06000850&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r4
    ROM:06000852&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    ROM:06000854&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sub&nbsp;&nbsp;&nbsp;&nbsp; r2, r0
    ROM:06000854; End of function DrawArt32X
    ROM:06000854
    ROM:06000856
    ROM:06000856; =============== S U B R O U T I N E =======================================
    ROM:06000856
    ROM:06000856; r12 - number of bits to cycle
    ROM:06000856
    ROM:06000856 BitCycleForCompressedArt:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; CODE XREF: DrawArt32X+3Ap
    ROM:06000856&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; DrawArt32X+4Ap ...
    ROM:06000856&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; #0, r0
    ROM:06000858&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/pl&nbsp;&nbsp;r12
    ROM:0600085A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loc_6000880
    ROM:0600085C
    ROM:0600085C loc_600085C:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: BitCycleForCompressedArt+28j
    ROM:0600085C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tst&nbsp;&nbsp;&nbsp;&nbsp; r14, r14
    ROM:0600085E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loc_6000868
    ROM:06000860&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r13
    ROM:06000862&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; #8, r14
    ROM:06000864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll16&nbsp;&nbsp;r13
    ROM:06000866&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r13
    ROM:06000868
    ROM:06000868 loc_6000868:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: BitCycleForCompressedArt+8j
    ROM:06000868&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/hi&nbsp;&nbsp;r14, r12
    ROM:0600086A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_6000870
    ROM:0600086C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r12, r11
    ROM:0600086E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; r14, r11
    ROM:06000870
    ROM:06000870 loc_6000870:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: BitCycleForCompressedArt+14j
    ROM:06000870&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sub&nbsp;&nbsp;&nbsp;&nbsp; r11, r12
    ROM:06000872
    ROM:06000872 loc_6000872:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: BitCycleForCompressedArt+22j
    ROM:06000872&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll&nbsp;&nbsp;&nbsp;&nbsp;r13
    ROM:06000874&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotcl&nbsp;&nbsp; r0
    ROM:06000876&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r11
    ROM:06000878&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf/s&nbsp;&nbsp;&nbsp;&nbsp;loc_6000872
    ROM:0600087A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; #-1, r14
    ROM:0600087C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tst&nbsp;&nbsp;&nbsp;&nbsp; r12, r12
    ROM:0600087E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loc_600085C
    ROM:06000880
    ROM:06000880 loc_6000880:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; CODE XREF: BitCycleForCompressedArt+4j
    ROM:06000880&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    ROM:06000882&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nop
    ROM:06000882; End of function BitCycleForCompressedArt
    ROM:06000882<!--c2--></div><!--ec2-->
     
  5. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    <img src="http://idisk.mac.com/pietro10-Public/hour1.png" border="0" class="linked-image" /><img src="http://idisk.mac.com/pietro10-Public/hour2.png" border="0" class="linked-image" />
    Heran Bago told me over AIM that modifying the object table gives you a monitor with this, and I have seen two chunks of unidentified code that modifies OST values in the monitor code, meaning that the initialization for whatever this monitor did is still intact, but the actual code isn't. The palette shown hers is arbitrary; I'll add a way to select palettes and show uncompressed art and release a viewer tomorrow or Wednesday.
     
  6. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    WHAT IS THIS I DON'T EVEN

    <img src="http://idisk.mac.com/pietro10-Public/biplane1.png" border="0" class="linked-image" />
    <img src="http://idisk.mac.com/pietro10-Public/biplane2.png" border="0" class="linked-image" />
    <img src="http://idisk.mac.com/pietro10-Public/biplane3.png" border="0" class="linked-image" />
    <img src="http://idisk.mac.com/pietro10-Public/biplane4.png" border="0" class="linked-image" />
     
  7. amphobius

    amphobius

    where are the japanese shaman girls, lintahlo? Member
    HOLY FUCKING SHIT.

    Wasn't expecting that.
     
  8. MarkeyJester

    MarkeyJester

    My predecessors have nothing on me. Resident Jester
    Oh wow wait, that was in chaotix? me thinks that Sonic and tails were in the rom for a good long time during production.
     
  9. E-122-Psi

    E-122-Psi

    Member
    1,791
    0
    0
    ??!?!?!!!!?!

    Interesting to see Tails in Chaotix sprite form, even if it's just his face (for now?....).

    That said Chaotix always seemed like a kinda rushed title, so it doesn't surprise me there is a fair amount of unused stuff in the games memory.
     
  10. Black Squirrel

    Black Squirrel

    Fifty paces towards the sun, cooking beets. Wiki Sysop
    5,112
    28
    28
    Northumberland, England
    The soil knows all.
    Wow

    Shame Tails wasn't in the game - it looks like he'd have a nice sprite.
     
  11. McAleeCh

    McAleeCh

    Oldbie
    943
    1
    18
    Oooh, quite a find there. I assume that's in the final, right? If so, might be worth looking through some of the Chaotix protos that were part of drx's mass proto release when you're done; see if there's any leftovers in those that were cleaned up before the final release.

    Looking at it, the first thing that comes to my mind is the S3&K ending sequence. Isn't that, like, the only other time we see the plane flying to the left of the screen? In fact, come to think of it, doesn't a larger piece of artwork of Sonic & Tails on the Tornado appear in Chaotix's good ending? Could this at one point have been intended as part of an ending sequence? Whatever it's for, I see the Chaotix art team actually bothered to fix the "SONIC" on the side - S3&K just mirrored the plane for the ending sequence since it's seen flying right in all other instances, so the letters were mirror-image in that game.

    Looking forward to any further discoveries! = )
     
  12. Hanoch

    Hanoch

    Also known as TheKnock, Birashot Member
    491
    0
    0
    Israel
    everything
    Does that mean tails can beat the crap out of badniks with that lazer cannon?
     
  13. Black Squirrel

    Black Squirrel

    Fifty paces towards the sun, cooking beets. Wiki Sysop
    5,112
    28
    28
    Northumberland, England
    The soil knows all.
    <img src="http://img237.imageshack.us/img237/7242/chaotixtailsplane.gif" border="0" class="linked-image" />
    Not entirely sure if the animation is correct but yeah
     
  14. E-122-Psi

    E-122-Psi

    Member
    1,791
    0
    0
    <!--quoteo(post=419287:date=Mar 2 2010, 03:19 PM:name=Black Squirrel)--><div class='quotetop'>QUOTE (Black Squirrel @ Mar 2 2010, 03:19 PM) <a href="index.php?act=findpost&pid=419287"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><img src="http://img237.imageshack.us/img237/7242/chaotixtailsplane.gif" border="0" class="linked-image" />
    Not entirely sure if the animation is correct but yeah<!--QuoteEnd--></div><!--QuoteEEnd-->

    Likely a lot faster to give a bit of a motion blur and swaying up and down like the S+K version. I like it though.
     
  15. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    <!--quoteo(post=419287:date=Mar 2 2010, 03:19 PM:name=Black Squirrel)--><div class='quotetop'>QUOTE (Black Squirrel @ Mar 2 2010, 03:19 PM) <a href="index.php?act=findpost&pid=419287"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><img src="http://img237.imageshack.us/img237/7242/chaotixtailsplane.gif" border="0" class="linked-image" />
    Not entirely sure if the animation is correct but yeah<!--QuoteEnd--></div><!--QuoteEEnd-->
    The screenshots above have a border drawn over the outermost pixels because .net is stupid and border style FixedSingle does that. I will be releasing my viewer later so you can use that for more accurate GIFs.
     
  16. Overlord

    Overlord

    ...did we just switch realities? Moderator
    17,434
    15
    18
    Berkshire, England
    Learning Cymraeg
    Holy shit new Tornado design. Very nice =P
     
  17. Diablohead

    Diablohead

    Indie dev Oldbie
    1,715
    0
    16
    Near London
    games
    What else can I say apart from cool :D
     
  18. <img src="http://localhostr.com/files/3d718d/chaotixtailsplane.gif" border="0" class="linked-image" />

    Edited the gif, I think that is the animation.

    Lol it seems I fucked one color up.

    EDIT:

    <img src="http://localhostr.com/files/0ac984/chaotixtailsplane.gif" border="0" class="linked-image" />

    Fix'd.
     
  19. SGR

    SGR

    Give me the gams. Member
    This really doesn't make a lot of sense to me. andlabs told me this was discovered in the final. How come we weren't able to find it in the 1207 proto? All art in that proto (to my knowledge) is uncompressed. Did they attempt to put Tails in after all? According to what andlabs has told me this was found in a section where a lot of the sprites used the 32x's scaling. It could be a potential alternate ending that was planned, or maybe something more or different entirely. The world may never know and it's such a shame Tails got scrapped. :/
     
  20. <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->This really doesn't make a lot of sense to me. andlabs told me this was discovered in the final. How come we weren't able to find it in the 1207 proto?<!--QuoteEnd--></div><!--QuoteEEnd-->

    NOW That makes sense to me. That's is simply the proto art for the credits, on which, Tails appears on a plane.

    Anyway =P. If that is true, I'm glad they replaced it, 'cause the final is much more detailed.
     
Thread Status:
Not open for further replies.