trunk/src/mame/machine/pgmprot_igs027a_type1.c
| r24640 | r24641 | |
| 641 | 641 | the first step of decoding this is clearly a xor, with the first value written being an index |
| 642 | 642 | into a 256 byte table.. |
| 643 | 643 | |
| 644 | |
| 645 | attempting to understand this (actual values are probably wrong because our table isn't correct, especially the low bits) |
| 646 | it is clear the low bits of our xor table are wrong, and obvious why, it's based on the data, and a value of 0 is very rare |
| 647 | because the data doesn't need to store blank space! the upper bits are more trusted because they're so rarely used |
| 648 | |
| 649 | |
| 650 | 001387de: 31 000e | value 0e, after xor is 76 << UNKNOWN (related to number of columns?) |
| 651 | ---- Column 1 |
| 652 | 001387de: 31 0098 | value 98, after xor is 40 << 4 = number of fish in ths column |
| 653 | 001387de: 31 00a8 | value a8, after xor is 0e |
| 654 | |
| 655 | 001387de: 31 007c | value 7c, after xor is 02 | 4 entries here (builds 0x0103, 0x0101, 0x0102, 0x0102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ) |
| 656 | 001387de: 31 0043 | value 43, after xor is 01 |
| 657 | 001387de: 31 00e4 | value e4, after xor is 00 |
| 658 | 001387de: 31 00a2 | value a2, after xor is 00 |
| 659 | ---- Column 2 |
| 660 | 001387de: 31 006a | value 6a, after xor is 41 << 4 = number of fish in ths column |
| 661 | 001387de: 31 00e0 | value e0, after xor is 0f |
| 662 | |
| 663 | 001387de: 31 00ed | value ed, after xor is 00 | 4 entries here (builds 0x0103, 0x0100, 0x0101, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ) |
| 664 | 001387de: 31 0024 | value 24, after xor is 00 |
| 665 | 001387de: 31 00bb | value bb, after xor is 01 |
| 666 | 001387de: 31 00bd | value bd, after xor is 05 |
| 667 | ---- Column 3 |
| 668 | 001387de: 31 002e | value 2e, after xor is 50 << 5 = number of fish in ths column |
| 669 | 001387de: 31 00d6 | value d6, after xor is 1f |
| 670 | |
| 671 | 001387de: 31 002b | value 2b, after xor is 00 | 5 entries here (builds 0x0100, 0x0101, 0x0105, 0x0104, 0x0104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ) |
| 672 | 001387de: 31 007a | value 7a, after xor is 02 |
| 673 | 001387de: 31 00dd | value dd, after xor is 05 |
| 674 | 001387de: 31 00a3 | value a3, after xor is 05 |
| 675 | 001387de: 31 007b | value 7b, after xor is 05 |
| 676 | ---- Column 4 |
| 677 | 001387de: 31 0052 | value 52, after xor is 10 << 1 = number of fish in ths column |
| 678 | 001387de: 31 00e7 | value e7, after xor is 03 |
| 679 | |
| 680 | 001387de: 31 00a2 | value a2, after xor is 00 | 1 entry here ( builds 0x0102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ) |
| 681 | ---- Column 5 |
| 682 | 001387de: 31 005a | value 5a, after xor is 71 << 7 = number of fish in this column |
| 683 | 001387de: 31 0090 | value 90, after xor is 7f |
| 684 | |
| 685 | 001387de: 31 00ee | value ee, after xor is 03 | 7 entries here (builds 0x0100, 0x0101, 0x0103, 0x0102, 0x0104, 0x0100 ,0x0100, 0x0000, 0x0000, 0x0000 ) |
| 686 | 001387de: 31 0025 | value 25, after xor is 01 |
| 687 | 001387de: 31 00b9 | value b9, after xor is 03 |
| 688 | 001387de: 31 00ba | value ba, after xor is 02 |
| 689 | 001387de: 31 007a | value 7a, after xor is 04 |
| 690 | 001387de: 31 00c9 | value c9, after xor is 00 |
| 691 | 001387de: 31 002b | value 2b, after xor is 00 |
| 692 | ---- Column 6 |
| 693 | 001387de: 31 002b | value 2b, after xor is 53 << 5 = number of fish in this column |
| 694 | 001387de: 31 00c7 | value c7, after xor is 1f |
| 695 | |
| 696 | 001387de: 31 00a2 | value a2, after xor is 04 | 5 entries here (builds 0x0105, 0x0105, 0x0101, 0x0101, 0x0103, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 ) |
| 697 | 001387de: 31 007a | value 7a, after xor is 04 |
| 698 | 001387de: 31 0043 | value 43, after xor is 01 |
| 699 | 001387de: 31 00e7 | value e7, after xor is 03 |
| 700 | 001387de: 31 00a3 | value a3, after xor is 01 (end, returning 630006 as playfield width) |
| 701 | |
| 702 | |
| 703 | |
| 704 | |
| 705 | |
| 706 | |
| 707 | |
| 708 | |
| 709 | |
| 644 | 710 | */ |
| 645 | 711 | |
| 646 | 712 | // these table aren't accurate yet, generated with analysis of data sent, we never |