don't click here

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
    1
    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

    Time to Grow Up. Resident Jester
    2,128
    253
    63
    Japan
    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
    1
    0
    Writing my own MD/Genesis sound driver :D
    Code (Text):
    1. THE BIT CYCLING ALGORITHM
    2. =========================
    3. The art compression revolves around a bit cycling algorithm that I don't understand:
    4.  
    5. &nbsp;&nbsp;&nbsp;&nbsp;bitcycle(numbits):
    6. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output = 0
    7. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while numbits != 0 do
    8. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if maxbits == 0 then
    9. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxbits = 8
    10. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datum = next byte in file << 24
    11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = numbits
    12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if numbits > maxbits then
    13. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = maxbits
    14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numbits = numbits - counter
    15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until counter == 0 do
    16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shift datum left, saving topmost bit in carry
    17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotate (carry bit, output) left
    18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxbits = maxbits - 1
    19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = counter - 1
    20.  
    21.  
    22.  
    23. HEADER FORMAT
    24. =============
    25. OFFSET&nbsp;&nbsp;&nbsp;&nbsp;SIZE&nbsp;&nbsp;&nbsp;&nbsp;NAME&nbsp;&nbsp;&nbsp;&nbsp;DESCRIPTION
    26. 0&nbsp;&nbsp;&nbsp;&nbsp;Word&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of bytes in output data
    27. 2&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Always 0x42 to identify input data as compressed
    28. 3&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base x coordinate (x0)
    29. 4&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r5&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for x coordinates
    30. 5&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base y coordinate (y0)
    31. 6&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r7&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for y coordinates
    32. 7&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base color value (c0)
    33. 8&nbsp;&nbsp;&nbsp;&nbsp;Byte&nbsp;&nbsp;&nbsp;&nbsp;r9&nbsp;&nbsp;&nbsp;&nbsp;number of bits to cycle for color value
    34.  
    35. 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.
    36.  
    37. The final x1 value is
    38. &nbsp;&nbsp;&nbsp;&nbsp;x1 = x0 + bitcycle(r5)
    39. The final y1 value is
    40. &nbsp;&nbsp;&nbsp;&nbsp;y1 = (y0 + bitcycle(r6)) << 8
    41.  
    42. So the program beings with
    43.  
    44. &nbsp;&nbsp;&nbsp;&nbsp;write word x0
    45. &nbsp;&nbsp;&nbsp;&nbsp;write word x1
    46. &nbsp;&nbsp;&nbsp;&nbsp;write word (y0 << 8)
    47. &nbsp;&nbsp;&nbsp;&nbsp;write word y1
    48.  
    49.  
    50.  
    51. DATA
    52. ====
    53. Now begins each line:
    54.  
    55. &nbsp;&nbsp;&nbsp;&nbsp;x0_line = bitcycle(r5) + x0
    56. &nbsp;&nbsp;&nbsp;&nbsp;x1_line = bitcycle(r5) + x0
    57.  
    58. If x1_line == x0_line then the art is fully decompressed. Otherwise processing continues:
    59.  
    60. &nbsp;&nbsp;&nbsp;&nbsp;write byte x0_line
    61. &nbsp;&nbsp;&nbsp;&nbsp;write byte x1_line
    62. &nbsp;&nbsp;&nbsp;&nbsp;n_pixels_per_line = x1_line - x0_line
    63. &nbsp;&nbsp;&nbsp;&nbsp;y_line = (bitcycle(r7) + y0) << 8
    64. &nbsp;&nbsp;&nbsp;&nbsp;write word y_line
    65. &nbsp;&nbsp;&nbsp;&nbsp;until n_pixels_per_line == 0 do
    66. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_color_value = bitcycle(r9) + c0
    67. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if pixel_color_value == 0 then
    68. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_color_value = fallback_pixel_color
    69. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write byte pixel_color_value
    70. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n_pixels_per_line = n_pixels_per_line - 1
    71.  
    72. 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.
    I don't understand the bitcycle() routine, but there you have it. Here's the original SH-2 code:

    Code (Text):
    1. ROM:0600075A
    2. ROM:0600075A; =============== S U B R O U T I N E =======================================
    3. ROM:0600075A
    4. ROM:0600075A; r1 - input data
    5. ROM:0600075A; r2 - output buffer
    6. ROM:0600075A
    7. 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
    8. 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
    9. 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
    10. 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'
    11. 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
    12. 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
    13. ROM:06000762&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r13, @-r15
    14. ROM:06000764&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r12, @-r15
    15. ROM:06000766&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r11, @-r15
    16. ROM:06000768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r10, @-r15
    17. ROM:0600076A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r9, @-r15
    18. ROM:0600076C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r8, @-r15
    19. ROM:0600076E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r7, @-r15
    20. ROM:06000770&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r6, @-r15
    21. ROM:06000772&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r5, @-r15
    22. ROM:06000774&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r4, @-r15
    23. ROM:06000776&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r2, @-r15
    24. ROM:06000778&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r1, @-r15
    25. ROM:0600077A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sts.l&nbsp;&nbsp; pr, @-r15
    26. ROM:0600077C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r0
    27. 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
    28. ROM:06000780&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extu.w&nbsp;&nbsp;r0, r0
    29. ROM:06000782&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r0, @-r15
    30. ROM:06000784&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    31. ROM:06000786&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r5
    32. ROM:06000788&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r6
    33. ROM:0600078A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r7
    34. ROM:0600078C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r8
    35. ROM:0600078E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r9
    36. 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
    37. ROM:06000792&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r4, @r2
    38. 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
    39. 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
    40. 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
    41. 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)
    42. 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
    43. 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
    44. ROM:060007A0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    45. ROM:060007A2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    46. 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
    47. 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
    48. 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
    49. ROM:060007AA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    50. 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)
    51. 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
    52. 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
    53. ROM:060007B2; ---------------------------------------------------------------------------
    54. ROM:060007B2
    55. 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
    56. 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
    57. 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
    58. 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
    59. 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
    60. 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
    61. ROM:060007BC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r0
    62. 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)
    63. 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
    64. ROM:060007C2
    65. 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
    66. 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
    67. 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
    68. 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
    69. 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
    70. 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
    71. 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
    72. 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
    73. ROM:060007D0
    74. 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
    75. ROM:060007D0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @r2
    76. 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
    77. 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
    78. ROM:060007D6
    79. 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
    80. 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
    81. 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
    82. 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
    83. ROM:060007DC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r0, @r2
    84. 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
    85. 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
    86. 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
    87. 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
    88. ROM:060007E6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/eq&nbsp;&nbsp;r10, r0
    89. 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
    90. 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)
    91. 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
    92. ROM:060007EE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    93. ROM:060007F0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r0
    94. ROM:060007F2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lds.l&nbsp;&nbsp; @r15+, pr
    95. ROM:060007F4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r1
    96. ROM:060007F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r2
    97. ROM:060007F8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r4
    98. ROM:060007FA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r5
    99. ROM:060007FC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r6
    100. ROM:060007FE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r7
    101. ROM:06000800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r8
    102. ROM:06000802&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r9
    103. ROM:06000804&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r10
    104. ROM:06000806&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r11
    105. ROM:06000808&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r12
    106. ROM:0600080A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r13
    107. ROM:0600080C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    108. ROM:0600080E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r14
    109. ROM:06000810; ---------------------------------------------------------------------------
    110. ROM:06000810
    111. 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
    112. 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 ...
    113. ROM:06000810&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r4, @-r15
    114. ROM:06000812&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r2, @-r15
    115. ROM:06000814&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; r1, @-r15
    116. 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
    117. ROM:06000818
    118. 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
    119. ROM:06000818&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r0
    120. 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
    121. ROM:0600081C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r0, @r2
    122. 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
    123. 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
    124. 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
    125. ROM:06000824
    126. 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
    127. 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
    128. ROM:06000826&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; @r1+, r4
    129. ROM:06000828&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.w&nbsp;&nbsp; r4, @r2
    130. 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
    131. ROM:0600082C
    132. 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
    133. ROM:0600082C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    134. 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
    135. 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
    136. 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
    137. 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
    138. ROM:06000836
    139. 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
    140. ROM:06000836&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r4, @r2
    141. 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
    142. 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
    143. ROM:0600083C
    144. 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
    145. ROM:0600083C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r4
    146. ROM:0600083E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r0
    147. ROM:06000840&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; r4, @r2
    148. 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)
    149. ROM:06000844&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/eq&nbsp;&nbsp;r4, r0
    150. 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
    151. 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
    152. 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
    153. ROM:0600084C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r1
    154. ROM:0600084E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r2
    155. ROM:06000850&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.l&nbsp;&nbsp; @r15+, r4
    156. ROM:06000852&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    157. 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
    158. ROM:06000854; End of function DrawArt32X
    159. ROM:06000854
    160. ROM:06000856
    161. ROM:06000856; =============== S U B R O U T I N E =======================================
    162. ROM:06000856
    163. ROM:06000856; r12 - number of bits to cycle
    164. ROM:06000856
    165. ROM:06000856 BitCycleForCompressedArt:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; CODE XREF: DrawArt32X+3Ap
    166. 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 ...
    167. 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
    168. ROM:06000858&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/pl&nbsp;&nbsp;r12
    169. 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
    170. ROM:0600085C
    171. 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
    172. 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
    173. 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
    174. ROM:06000860&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov.b&nbsp;&nbsp; @r1+, r13
    175. 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
    176. ROM:06000864&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll16&nbsp;&nbsp;r13
    177. ROM:06000866&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll8&nbsp;&nbsp; r13
    178. ROM:06000868
    179. 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
    180. ROM:06000868&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp/hi&nbsp;&nbsp;r14, r12
    181. 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
    182. 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
    183. 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
    184. ROM:06000870
    185. 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
    186. 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
    187. ROM:06000872
    188. 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
    189. ROM:06000872&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shll&nbsp;&nbsp;&nbsp;&nbsp;r13
    190. ROM:06000874&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rotcl&nbsp;&nbsp; r0
    191. 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
    192. 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
    193. 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
    194. 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
    195. 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
    196. ROM:06000880
    197. 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
    198. ROM:06000880&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rts
    199. ROM:06000882&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nop
    200. ROM:06000882; End of function BitCycleForCompressedArt
    201. ROM:06000882
     
  5. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    1
    0
    Writing my own MD/Genesis sound driver :D
    [​IMG][​IMG]
    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
    1
    0
    Writing my own MD/Genesis sound driver :D
    WHAT IS THIS I DON'T EVEN

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
     
  7. amphobius

    amphobius

    doing more important things with my life Member
    2,120
    0
    16
    life
    HOLY FUCKING SHIT.

    Wasn't expecting that.
     
  8. MarkeyJester

    MarkeyJester

    Time to Grow Up. Resident Jester
    2,128
    253
    63
    Japan
    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
    2,299
    477
    63
    ??!?!?!!!!?!

    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

    bed 'n' breakfast Wiki Sysop
    7,475
    1,438
    93
    Northumberland, UK
    Wiki and Minnie's Runaway Railway
    Wow

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

    McAleeCh

    Oldbie
    1,274
    281
    63
    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

    bed 'n' breakfast Wiki Sysop
    7,475
    1,438
    93
    Northumberland, UK
    Wiki and Minnie's Runaway Railway
    [​IMG]
    Not entirely sure if the animation is correct but yeah
     
  14. E-122-Psi

    E-122-Psi

    Member
    2,299
    477
    63
    <!--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]</a></div><div class='quotemain'><!--quotec-->[​IMG]
    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
    1
    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]</a></div><div class='quotemain'><!--quotec-->[​IMG]
    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

    Now playable in Smash Bros Ultimate Moderator
    18,881
    732
    93
    Long-term happiness
    Holy shit new Tornado design. Very nice =P
     
  17. Diablohead

    Diablohead

    Indie dev Oldbie
    1,861
    55
    28
    Near London
    games
    What else can I say apart from cool :D
     
  18. Mastered Realm

    Mastered Realm

    A green crystal Member
    [​IMG]

    Edited the gif, I think that is the animation.

    Lol it seems I fucked one color up.

    EDIT:

    [​IMG]

    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. Mastered Realm

    Mastered Realm

    A green crystal Member
    <!--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.