I was curious about the GB boot rom, so I went to the source by neviksti.
I opened the DMG ROM.txt file, but what I saw didn't resemble what the actual rom was supposed to look like, and it wasn't obvious to me how to extract the bits in the right order. So I went back to the original pics of the physical rom and stitched them together. But even then I couldn't figure out easily how the address decoding was supposed to work, and couldn't find any documentation on it.
Luckily I found this site:
DMG CPU decapped
This had a better zoom which allowed me to see some extra structure, particularly here:
So, you can see 16 lines going into the red box, which presumably is the address decoder for the actual mask rom (the yellowish blob in the top part of the image.)
In the blue area, you can see 8 big doodads which probably hold the data bits. The important part is how they are grouped from lines in the mask rom. Each bit is pulled from 1 of 2 blocks. This is the hint I needed to decode the original text file.
What you do is pull one bit from column 0 of block 1,3,5,7... to form a data byte.
Then you go down one row and repeat to get the next data byte.
Once you reach the bottom, then you go to column 1 of block 1,3,5,7....
Repeat until you are done with all 8 columns of those blocks.
then go and do the same for blocks 2,4,6,8....
Anyway it seems straight forward after you look at that picture, but I stared at the raw bits for a couple hours without realizing what the algorithm was supposed to be.
I didn't see this documented anywhere, so I guess it couldn't hurt to add a little detail to fill in neviksti's missing steps. It was an interesting exercise.