Previous 199869 Revisions Next

r24641 Friday 2nd August, 2013 at 02:54:59 UTC by David Haywood
format starts to make sense (nw)
[src/mame/machine]pgmprot_igs027a_type1.c

trunk/src/mame/machine/pgmprot_igs027a_type1.c
r24640r24641
641641         the first step of decoding this is clearly a xor, with the first value written being an index
642642         into a 256 byte table..
643643
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
644710         */
645711
646712         // these table aren't accurate yet, generated with analysis of data sent, we never

Previous 199869 Revisions Next


© 1997-2024 The MAME Team