View Single Post
Old 22 September 2021, 20:48   #192
chadderack
Registered User

chadderack's Avatar
 
Join Date: Jul 2021
Location: Sandy, UT
Age: 52
Posts: 227
Quote:
Originally Posted by dlfrsilver View Post
It's a sort of encoding..... and yes, it seems easy through mame, but it's not in fact.....
Well, let's see if I'm close

Here's a rough example. Let's say that the raw bitmap data for a tile is stored on the ROM gfx2 chip at location 0x1000.

Here's how that is decoded:

Code:
EXAMPLE: RAW BYTES START AT LOCATION 0x1000
16x16 tile decode from bitmap--4 bitplanes

(BITPLANES 0 and 1 are offset by 20000h in the source gfx2 chip)
(each value in the tables represents a byte memory location in the raw tile bitmap)

BITPLANE 0: (PIXELS)

         x POS <=========================================================================================>

    READ:  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7
y           0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
P     0  |21000|21000|21000|21000|21001|21001|21001|21001|21020|21020|21020|21020|21021|21021|21021|21021|
O        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
S     1  |21002|21002|21002|21002|21003|21003|21003|21003|21022|21022|21022|21022|21023|21023|21023|21023|
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
^     2  |21004|21004|21004|21004|21005|21005|21005|21005|21024|21024|21024|21024|21025|21025|21025|21025|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     3  |21006|21006|21006|21006|21007|21007|21007|21007|21026|21026|21026|21026|21027|21027|21027|21027|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     4  |21008|21008|21008|21008|21009|21009|21009|21009|21028|21028|21028|21028|21029|21029|21029|21029|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     5  |2100A|2100A|2100A|2100A|2100B|2100B|2100B|2100B|2102A|2102A|2102A|2102A|2102B|2102B|2102B|2102B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     6  |2100C|2100C|2100C|2100C|2100D|2100D|2100D|2100D|2102C|2102C|2102C|2102C|2102D|2102D|2102D|2102D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     7  |2100E|2100E|2100E|2100E|2100F|2100F|2100F|2100F|2102E|2102E|2102E|2102E|2102F|2102F|2102F|2102F|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     8  |21010|21010|21010|21010|21011|21011|21011|21011|21030|21030|21030|21030|21031|21031|21031|21031|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     9  |21012|21012|21012|21012|21013|21013|21013|21013|21032|21032|21032|21032|21033|21033|21033|21033|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     A  |21014|21014|21014|21014|21015|21015|21015|21015|21034|21034|21034|21034|21035|21035|21035|21035|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     B  |21016|21016|21016|21016|21017|21017|21017|21017|21036|21036|21036|21036|21037|21037|21037|21037|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     C  |21018|21018|21018|21018|21019|21019|21019|21019|21038|21038|21038|21038|21039|21039|21039|21039|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     D  |2101A|2101A|2101A|2101A|2101B|2101B|2101B|2101B|2103A|2103A|2103A|2103A|2103B|2103B|2103B|2103B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     E  |2101C|2101C|2101C|2101C|2101D|2101D|2101D|2101D|2103C|2103C|2103C|2103C|2103D|2103D|2103D|2103D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     F  |2101E|2101E|2101E|2101E|2101F|2101F|2101F|2101F|2103E|2103E|2103E|2103E|2103F|2103F|2103F|2103F|
V        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|


BITPLANE 1: (PIXELS)

         x POS <=========================================================================================>

    READ:  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3
y           0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
P     0  |21000|21000|21000|21000|21001|21001|21001|21001|21020|21020|21020|21020|21021|21021|21021|21021|
O        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
S     1  |21002|21002|21002|21002|21003|21003|21003|21003|21022|21022|21022|21022|21023|21023|21023|21023|
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
^     2  |21004|21004|21004|21004|21005|21005|21005|21005|21024|21024|21024|21024|21025|21025|21025|21025|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     3  |21006|21006|21006|21006|21007|21007|21007|21007|21026|21026|21026|21026|21027|21027|21027|21027|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     4  |21008|21008|21008|21008|21009|21009|21009|21009|21028|21028|21028|21028|21029|21029|21029|21029|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     5  |2100A|2100A|2100A|2100A|2100B|2100B|2100B|2100B|2102A|2102A|2102A|2102A|2102B|2102B|2102B|2102B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     6  |2100C|2100C|2100C|2100C|2100D|2100D|2100D|2100D|2102C|2102C|2102C|2102C|2102D|2102D|2102D|2102D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     7  |2100E|2100E|2100E|2100E|2100F|2100F|2100F|2100F|2102E|2102E|2102E|2102E|2102F|2102F|2102F|2102F|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     8  |21010|21010|21010|21010|21011|21011|21011|21011|21030|21030|21030|21030|21031|21031|21031|21031|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     9  |21012|21012|21012|21012|21013|21013|21013|21013|21032|21032|21032|21032|21033|21033|21033|21033|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     A  |21014|21014|21014|21014|21015|21015|21015|21015|21034|21034|21034|21034|21035|21035|21035|21035|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     B  |21016|21016|21016|21016|21017|21017|21017|21017|21036|21036|21036|21036|21037|21037|21037|21037|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     C  |21018|21018|21018|21018|21019|21019|21019|21019|21038|21038|21038|21038|21039|21039|21039|21039|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     D  |2101A|2101A|2101A|2101A|2101B|2101B|2101B|2101B|2103A|2103A|2103A|2103A|2103B|2103B|2103B|2103B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     E  |2101C|2101C|2101C|2101C|2101D|2101D|2101D|2101D|2103C|2103C|2103C|2103C|2103D|2103D|2103D|2103D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     F  |2101E|2101E|2101E|2101E|2101F|2101F|2101F|2101F|2103E|2103E|2103E|2103E|2103F|2103F|2103F|2103F|
V        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|


BITPLANE 2: (PIXELS)

         x POS <=========================================================================================>

    READ:  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7  BIT4  BIT5  BIT6  BIT7
y           0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
P     0  | 1000| 1000| 1000| 1000| 1001| 1001| 1001| 1001| 1020| 1020| 1020| 1020| 1021| 1021| 1021| 1021|
O        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
S     1  | 1002| 1002| 1002| 1002| 1003| 1003| 1003| 1003| 1022| 1022| 1022| 1022| 1023| 1023| 1023| 1023|
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
^     2  | 1004| 1004| 1004| 1004| 1005| 1005| 1005| 1005| 1024| 1024| 1024| 1024| 1025| 1025| 1025| 1025|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     3  | 1006| 1006| 1006| 1006| 1007| 1007| 1007| 1007| 1026| 1026| 1026| 1026| 1027| 1027| 1027| 1027|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     4  | 1008| 1008| 1008| 1008| 1009| 1009| 1009| 1009| 1028| 1028| 1028| 1028| 1029| 1029| 1029| 1029|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     5  | 100A| 100A| 100A| 100A| 100B| 100B| 100B| 100B| 102A| 102A| 102A| 102A| 102B| 102B| 102B| 102B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     6  | 100C| 100C| 100C| 100C| 100D| 100D| 100D| 100D| 102C| 102C| 102C| 102C| 102D| 102D| 102D| 102D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     7  | 100E| 100E| 100E| 100E| 100F| 100F| 100F| 100F| 102E| 102E| 102E| 102E| 102F| 102F| 102F| 102F|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     8  | 1010| 1010| 1010| 1010| 1011| 1011| 1011| 1011| 1030| 1030| 1030| 1030| 1031| 1031| 1031| 1031|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     9  | 1012| 1012| 1012| 1012| 1013| 1013| 1013| 1013| 1032| 1032| 1032| 1032| 1033| 1033| 1033| 1033|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     A  | 1014| 1014| 1014| 1014| 1015| 1015| 1015| 1015| 1034| 1034| 1034| 1034| 1035| 1035| 1035| 1035|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     B  | 1016| 1016| 1016| 1016| 1017| 1017| 1017| 1017| 1036| 1036| 1036| 1036| 1037| 1037| 1037| 1037|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     C  | 1018| 1018| 1018| 1018| 1019| 1019| 1019| 1019| 1038| 1038| 1038| 1038| 1039| 1039| 1039| 1039|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     D  | 101A| 101A| 101A| 101A| 101B| 101B| 101B| 101B| 103A| 103A| 103A| 103A| 103B| 103B| 103B| 103B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     E  | 101C| 101C| 101C| 101C| 101D| 101D| 101D| 101D| 103C| 103C| 103C| 103C| 103D| 103D| 103D| 103D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     F  | 101E| 101E| 101E| 101E| 101F| 101F| 101F| 101F| 103E| 103E| 103E| 103E| 103F| 103F| 103F| 103F|
V        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|


BITPLANE 3: (PIXELS)

         x POS <=========================================================================================>

    READ:  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3  BIT0  BIT1  BIT2  BIT3
y           0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
P     0  | 1000| 1000| 1000| 1000| 1001| 1001| 1001| 1001| 1020| 1020| 1020| 1020| 1021| 1021| 1021| 1021|
O        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
S     1  | 1002| 1002| 1002| 1002| 1003| 1003| 1003| 1003| 1022| 1022| 1022| 1022| 1023| 1023| 1023| 1023|
         |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
^     2  | 1004| 1004| 1004| 1004| 1005| 1005| 1005| 1005| 1024| 1024| 1024| 1024| 1025| 1025| 1025| 1025|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     3  | 1006| 1006| 1006| 1006| 1007| 1007| 1007| 1007| 1026| 1026| 1026| 1026| 1027| 1027| 1027| 1027|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     4  | 1008| 1008| 1008| 1008| 1009| 1009| 1009| 1009| 1028| 1028| 1028| 1028| 1029| 1029| 1029| 1029|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     5  | 100A| 100A| 100A| 100A| 100B| 100B| 100B| 100B| 102A| 102A| 102A| 102A| 102B| 102B| 102B| 102B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     6  | 100C| 100C| 100C| 100C| 100D| 100D| 100D| 100D| 102C| 102C| 102C| 102C| 102D| 102D| 102D| 102D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     7  | 100E| 100E| 100E| 100E| 100F| 100F| 100F| 100F| 102E| 102E| 102E| 102E| 102F| 102F| 102F| 102F|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     8  | 1010| 1010| 1010| 1010| 1011| 1011| 1011| 1011| 1030| 1030| 1030| 1030| 1031| 1031| 1031| 1031|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     9  | 1012| 1012| 1012| 1012| 1013| 1013| 1013| 1013| 1032| 1032| 1032| 1032| 1033| 1033| 1033| 1033|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     A  | 1014| 1014| 1014| 1014| 1015| 1015| 1015| 1015| 1034| 1034| 1034| 1034| 1035| 1035| 1035| 1035|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     B  | 1016| 1016| 1016| 1016| 1017| 1017| 1017| 1017| 1036| 1036| 1036| 1036| 1037| 1037| 1037| 1037|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     C  | 1018| 1018| 1018| 1018| 1019| 1019| 1019| 1019| 1038| 1038| 1038| 1038| 1039| 1039| 1039| 1039|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     D  | 101A| 101A| 101A| 101A| 101B| 101B| 101B| 101B| 103A| 103A| 103A| 103A| 103B| 103B| 103B| 103B|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     E  | 101C| 101C| 101C| 101C| 101D| 101D| 101D| 101D| 103C| 103C| 103C| 103C| 103D| 103D| 103D| 103D|
|        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
|     F  | 101E| 101E| 101E| 101E| 101F| 101F| 101F| 101F| 103E| 103E| 103E| 103E| 103F| 103F| 103F| 103F|
V        |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
The tables represent rows and columns of PIXELS, not tiles. This is to translate the pixel data.

The first row of pixels comes from the first two bytes at 0x1000 and the first two bytes at 0x21000. The next row comes from 0x1002 and 0x21002 and so on.

Bitplanes 0 & 2 use the bits in the upper nybble of the source byte; bitplanes 1 & 3 use the bits in the lower nybble of the source byte.

Now some of the colors are marked as transparent... and I haven't quite gotten that figured out. I think the color is ANDed somehow.

But this should be a pretty good start as to understanding where the base bits are for the tile bitmap.
chadderack is offline  
 
Page generated in 0.04386 seconds with 10 queries