#include "version.h"

void v517patch() {
    if ( wallaby_version == WALLABY_517 ) {
        *((int *) 0x8c09bcc8 ) = 0xe1a00000;    // Skip flag test
        
        *((int *) 0x8c09bda4 ) = 0xe3a05000;    // Print expected key and skip test
        *((int *) 0x8c09bda8 ) = 0xe1a04001;
        *((int *) 0x8c09bdac ) = 0xe59f0024;
        *((int *) 0x8c09bdb0 ) = 0xe5d41000;
        *((int *) 0x8c09bdb4 ) = 0xebff9f7e;
        *((int *) 0x8c09bdb8 ) = 0xe2844001;
        *((int *) 0x8c09bdbc ) = 0xe1a00000;
        *((int *) 0x8c09bdc0 ) = 0xe2855001;
        *((int *) 0x8c09bdc4 ) = 0xe3550010;
        *((int *) 0x8c09bdc8 ) = 0x3afffff7;
        *((int *) 0x8c09bdcc ) = 0xe3a00001;
        *((int *) 0x8c09bdd8 ) = 0x8c079de4;
        
        *((int *) 0x8c09bee8 ) = 0xea000025;    // Skip counter test
    }
}


/*

orig:8C09BCC8 26 00 00 1A                 BNE     loc_8C09BD68
    patch:8C09BCC8 00 00 A0 E1                 NOP

orig:8C09BDA4 00 20 A0 E3                 MOV     R2, #0
orig:8C09BDA8             loc_8C09BDA8
orig:8C09BDA8 00 30 D0 E5                 LDRB    R3, [R0]
orig:8C09BDAC 01 00 80 E2                 ADD     R0, R0, #1
orig:8C09BDB0 00 B0 D1 E5                 LDRB    R11, [R1]
orig:8C09BDB4 01 10 81 E2                 ADD     R1, R1, #1
orig:8C09BDB8 0B 00 53 E1                 CMP     R3, R11
orig:8C09BDBC 04 00 00 1A                 BNE     loc_8C09BDD4
orig:8C09BDC0 01 20 82 E2                 ADD     R2, R2, #1
orig:8C09BDC4 10 00 52 E3                 CMP     R2, #0x10
orig:8C09BDC8 F6 FF FF 3A                 BCC     loc_8C09BDA8
orig:8C09BDCC 01 00 A0 E3                 MOV     R0, #1
orig:8C09BDD0             loc_8C09BDD0
orig:8C09BDD0 00 88 BD E8                 LDMFD   SP!, {R11,PC}

orig:8C09BDD8 FC FF FF EA                 B       loc_8C09BDD0

    patch:8C09BDA4 00 50 A0 E3                 MOV     R5, #0
    patch:8C09BDA8             loc_8C09BDA8
    patch:8C09BDA8 01 40 A0 E1                 MOV     R4, R1
    patch:8C09BDAC             loc_8C09BDAC
    patch:8C09BDAC 24 00 9F E5                 LDR     R0, =aDumpRegisterX
    patch:8C09BDB0 00 10 D4 E5                 LDRB    R1, [R4]
    patch:8C09BDB4 7E 9F FF EB                 BL      printf_8C083BB4
    patch:8C09BDB8 01 40 84 E2                 ADD     R4, R4, #1
    patch:8C09BDBC 00 00 A0 E1                 NOP     
    patch:8C09BDC0 01 50 85 E2                 ADD     R5, R5, #1
    patch:8C09BDC4 10 00 55 E3                 CMP     R5, #0x10
    patch:8C09BDC8 F7 FF FF 3A                 BCC     loc_8C09BDAC
    patch:8C09BDCC 01 00 A0 E3                 MOV     R0, #1
    patch:8C09BDD0 00 88 BD E8                 LDMFD   SP!, {R11,PC}

    patch:8C09BDD8 E4 9D 07 8C off_8C09BDD8    DCD aDumpRegisterX      ; "Dump Register : %x\n"

orig:8C09BEE8 01 30 A0 E3                 MOV     R3, #1
  patch:8C09BEE8 25 00 00 EA                 B       loc_8C09BF84


 */

