| Private cosmetic preview: scoped VRAM/palette/UI scratch writes only; no game-rule or SRAM engine changes.
 .ifndef WITH_NATIVE_FOOTER_WIDTH
 .equ WITH_NATIVE_FOOTER_WIDTH,1
 .endif
 .text
 .globl _start
_start:
 bra.w transfer
 bra.w center_footer
 bra.w common
 bra.w custom
 bra.w open_common
 bra.w close_common
 bra.w write_char
 bra.w footer_background
center_footer:
 movem.l %d0-%d1/%a0,-(%sp)
 move.w (%a1),%d0
 subq.w #2,%d0
center_trim:
 tst.w %d0
 beq.w center_position
 tst.b 1(%a1,%d0.w)
 beq.w center_remove
 cmpi.b #32,1(%a1,%d0.w)
 bne.w center_position
center_remove:
 subq.w #1,%d0
 bra.w center_trim
center_position:
 moveq #40,%d1
 .if WITH_NATIVE_FOOTER_WIDTH
 | Native BF78 BYTE bit1 selects H32 (word mask0200). Other menus use H40.
 | Read the same native flag as credits/VDP mode setup; do not alter the mode.
 btst #1,0xFFFFBF78
 beq.s center_width_ready
 moveq #32,%d1
center_width_ready:
 .endif
 sub.w %d0,%d1
 lsr.w #1,%d1
 move.w %d1,0xFFFFB028
 lea 0xFFFFF9A0,%a0
 move.w %d0,%d1
 addq.w #2,%d1
 move.w %d1,(%a0)+
 addq.l #2,%a1
 subq.w #1,%d0
 bmi.w center_copied
center_copy:
 move.b (%a1)+,(%a0)+
 dbra %d0,center_copy
center_copied:
 clr.b (%a0)
 lea 0xFFFFF9A0,%a1
 movem.l (%sp)+,%d0-%d1/%a0
 rts
open_common:
 jsr restore_common
 movem.l %d0-%d1/%a2,-(%sp)
 jsr 0x10F32
 jmp 0x9BE0
close_common:
 | Both native9CD8(fade) and9CDC(no fade, automatic/manual replay)
 | must enter here without overwriting either original public entry.
 jsr restore_common
 move.w 0xFFFFBF78,-(%sp)
 bset #2,0xFFFFBF78
 jmp 0x9CE6
restore_common:
 move.w %sr,-(%sp)
 movem.l %d0-%d7/%a0-%a6,-(%sp)
 cmpi.l #0x47525931,0xFFFFF938
 bne.w restore_done
 ori.w #0x700,%sr
 cmpi.w #1,0xFFFFF93E
 bne.w restore_cards
 move.w 0xFFFFF93C,%d0
 move.w %d0,0xFFFFBD6C
 move.l #0xC0440000,0xC00004
 move.w %d0,0xC00000
 move.w 0xFFFFF980,%d0
 move.w %d0,0xFFFFBD6E
 move.l #0xC0460000,0xC00004
 move.w %d0,0xC00000
 move.w 0xFFFFF98E,%d0
 move.w %d0,0xFFFFBD8E
 move.l #0xC0660000,0xC00004
 move.w %d0,0xC00000
 bra.w restore_clear
restore_cards:
 move.w 0xFFFFF994,%d0
 move.w %d0,0xFFFFBD9A
 move.l #0xC0720000,0xC00004
 move.w %d0,0xC00000
 move.w #0x8F02,0xC00004
 move.l #0x4B800001,0xC00004
 lea 0xFFFFF940,%a0
 moveq #15,%d0
restore_two_tiles:
 move.l (%a0)+,0xC00000
 dbra %d0,restore_two_tiles
restore_clear:
 clr.w 0xFFFFF990
 clr.l 0xFFFFF938
 clr.w 0xFFFFF93E
restore_done:
 movem.l (%sp)+,%d0-%d7/%a0-%a6
 move.w (%sp)+,%sr
 rts
common:
 move.w %sr,-(%sp)
 movem.l %d0-%d7/%a0-%a6,-(%sp)
 cmpi.w #0x408,0xFFFFB012
 bne.w common_done
 cmpi.w #0xF000,0xFFFFB00C
 bne.w common_done
 ori.w #0x700,%sr
 move.w #0x8F02,0xC00004
 move.l #0x30000003,0xC00004
 move.w 0xC00000,%d0
 andi.w #0x7FF,%d0
 cmpi.w #1,%d0
 beq.w common_detect
 cmpi.l #0x47525931,0xFFFFF938
 bne.w common_done
 bra.w common_done
common_detect:
 cmpi.l #0x47525931,0xFFFFF938
 beq.w common_refresh
 move.w 0xFFFFBD6C,0xFFFFF93C
 move.w 0xFFFFBD6E,0xFFFFF980
 move.w 0xFFFFBD8E,0xFFFFF98E
 move.w #1,0xFFFFF93E
 cmpi.w #0x41,0xFFFFB014
 beq.w common_tag
 move.w #2,0xFFFFF93E
 move.w 0xFFFFBD9A,0xFFFFF994
 move.w #0xEE,0xFFFFBD9A
 move.l #0xC0720000,0xC00004
 move.w #0xEE,0xC00000
 | 200..25B is restored by native9CD8/16CD2 (1E6..25B).
 | Save the only two extra glyph tiles25C..25D and restore them ourselves.
 move.l #0x0B800001,0xC00004
 lea 0xFFFFF940,%a0
 moveq #31,%d0
backup_two_tiles:
 move.w 0xC00000,(%a0)+
 dbra %d0,backup_two_tiles
common_tag:
 clr.w 0xFFFFF990
 | Native period statistics uses complete club palettes2/3. Identify its
 | original first logo's two map words, not a stale pause-menu selection.
 cmpi.w #1,0xFFFFF93E
 bne.w no_period_palette
 move.l #0x06040003,0xC00004
 move.w 0xC00000,%d0
 swap %d0
 move.w 0xC00000,%d0
 cmpi.l #0xE09FE0A0,%d0
 bne.w no_period_palette
 move.w #1,0xFFFFF990
no_period_palette:
 move.l #0x47525931,0xFFFFF938
common_refresh:
 move.w #0xE9,%d6
 move.w #0x2244,%d5
 lea common_art(%pc),%a0
 cmpi.w #1,0xFFFFF93E
 beq.w common_load_frame
 move.w #0x200,%d6
 move.w #0x61F0,%d5
 lea cards_art(%pc),%a0
common_load_frame:
 move.w %d5,%d0
 andi.l #0x7FF,%d0
 lsl.w #5,%d0
 bsr.w command
 moveq #71,%d0
upload_common_frame:
 move.l (%a0)+,0xC00000
 dbra %d0,upload_common_frame
 | Preserve complete native72-tile badges9F..E6; atlasesE9..1A4/1E6..243
 | and frame244..24C are restored by nativeclose.
 | Cards need that area for NHL26 art, so retain their protected200 atlas.
 move.w #0x408,%d7
 moveq #0,%d3
 moveq #0x23,%d4
 cmpi.w #2,0xFFFFF93E
 bne.w large_pattern_ready
 moveq #0x64,%d4
large_pattern_ready:
 bsr.w duplicate_font
 cmpi.w #1,0xFFFFF93E
 bne.w common_ready
 move.w #0x41,%d7
 move.w #0x147,%d6
 moveq #13,%d3
 moveq #0x32,%d4
 bsr.w duplicate_font
 move.w #0x41,%d7
 move.w #0x1E6,%d6
 moveq #13,%d3
 moveq #0x23,%d4
 bsr.w duplicate_font
 | Native yellow palette2/3 small letters also get a checker, never a flat fill.
 move.w #0x41,%d7
 move.w #0x41,%d6
 moveq #13,%d3
 moveq #0x23,%d4
 bsr.w duplicate_font
common_ready:
 move.w #0xE9,%d6
 move.w #0x2244,%d5
 cmpi.w #1,0xFFFFF93E
 bne.w ready_cards
 tst.w 0xFFFFF990
 bne.w ready_scan
 move.w #0x444,0xFFFFBD6C
 move.w #0x888,0xFFFFBD6E
 move.w #0x888,0xFFFFBD8E
 move.l #0xC0440000,0xC00004
 move.w #0x444,0xC00000
 move.w #0x888,0xC00000
 move.l #0xC0660000,0xC00004
 move.w #0x888,0xC00000
 bra.w ready_scan
ready_cards:
 move.w #0x200,%d6
 move.w #0x61F0,%d5
ready_scan:
 suba.w #80,%sp
 moveq #0,%d7
common_row:
 move.l #0xF000,%d0
 cmpi.w #24,%d7
 blo.w read_map_ready
 move.l #0xE000,%d0
read_map_ready:
 move.w %d7,%d1
 lsl.w #7,%d1
 add.l %d1,%d0
 bsr.w read_command
 movea.l %sp,%a0
 moveq #39,%d0
read_window:
 move.w 0xC00000,(%a0)+
 dbra %d0,read_window
 movea.l %sp,%a0
 moveq #0,%d4
common_cell:
 move.w (%a0),%d0
 move.w %d0,%d1
 andi.w #0x7FF,%d1
 cmpi.w #2,0xFFFFF93E
 bne.w cards_background_done
 cmpi.w #7,%d7
 blo.w cards_background_done
 cmpi.w #0xB7,%d1
 blo.w cards_background_done
 cmpi.w #0x114,%d1
 bls.w grey_background
 cmpi.w #0x157,%d1
 beq.w grey_background
 cmpi.w #0x158,%d1
 beq.w grey_background
cards_background_done:
 cmpi.w #24,%d7
 blo.w common_font_range
 cmpi.w #0x403,%d1
 beq.w grey_background
common_font_range:
 cmpi.w #0x408,%d1
 blo.w maybe_small
 cmpi.w #0x465,%d1
 bhi.w next_cell
 cmpi.w #24,%d7
 blo.w check_font_palette
 cmpi.w #0x403,%d1
 beq.w grey_background
check_font_palette:
 | Palette1's original black title/banners remain native. Body palette0,
 | yellow2 and alternate3 get the grey-backed white-font atlas.
 move.w %d0,%d2
 andi.w #0x6000,%d2
 cmpi.w #0x2000,%d2
 bne.w large_remap
 cmpi.w #24,%d7
 blo.w next_cell
large_remap:
 cmpi.w #2,0xFFFFF93E
 bne.w large_remap_attr_ready
 andi.w #0x9FFF,%d0
 ori.w #0x6000,%d0
large_remap_attr_ready:
 subi.w #0x408,%d1
 add.w %d6,%d1
 andi.w #0xF800,%d0
 or.w %d1,%d0
 move.w %d0,(%a0)
 bra.w next_cell
maybe_small:
 cmpi.w #1,0xFFFFF93E
 bne.w maybe_background
 cmpi.w #0x41,%d1
 blo.w maybe_background
 cmpi.w #0x9E,%d1
 bhi.w next_cell
 move.w %d0,%d2
 andi.w #0x6000,%d2
 cmpi.w #0x2000,%d2
 beq.w small_one
 tst.w %d2
 bne.w next_cell
 subi.w #0x41,%d1
 addi.w #0x1E6,%d1
 bra.w small_remap
small_one:
 subi.w #0x41,%d1
 addi.w #0x147,%d1
small_remap:
 andi.w #0xF800,%d0
 or.w %d1,%d0
 move.w %d0,(%a0)
 bra.w next_cell
maybe_background:
 cmpi.w #0x7FF,%d1
 beq.w grey_background
 cmpi.w #0x40,%d1
 bhi.w next_cell
grey_background:
 move.w %d0,%d2
 andi.w #0x8000,%d2
 | Native NHL texture cells and transparent blanks become the grey panel;
 | photos, club badges, lettering and existing title-frame cells stay intact.
 move.w %d5,%d0
 addq.w #3,%d0
 tst.w %d7
 bne.w grey_row
 move.w %d5,%d0
grey_row:
 cmpi.w #27,%d7
 bne.w grey_column
 move.w %d5,%d0
 addq.w #6,%d0
grey_column:
 tst.w %d4
 beq.w set_grey
 addq.w #2,%d0
 cmpi.w #39,%d4
 beq.w set_grey
 subq.w #1,%d0
set_grey:
 or.w %d2,%d0
 move.w %d0,(%a0)
next_cell:
 addq.l #2,%a0
 addq.w #1,%d4
 cmpi.w #40,%d4
 blo.w common_cell
 move.l #0xF000,%d0
 cmpi.w #24,%d7
 blo.w write_map_ready
 move.l #0xE000,%d0
write_map_ready:
 move.w %d7,%d1
 lsl.w #7,%d1
 add.l %d1,%d0
 bsr.w command
 movea.l %sp,%a0
 moveq #39,%d0
write_window:
 move.w (%a0)+,0xC00000
 dbra %d0,write_window
 addq.w #1,%d7
 cmpi.w #28,%d7
 blo.w common_row
 adda.w #80,%sp
 | Window is visible through row23. Its bottom edge belongs on fixed planeA
 | row24, above centred native help25/26. No rink plane is erased.
 move.l #0x6C000003,0xC00004
 move.w %d5,%d0
 ori.w #0x8000,%d0
 addq.w #6,%d0
 move.w %d0,0xC00000
 addq.w #1,%d0
 moveq #37,%d1
bottom_fill:
 move.w %d0,0xC00000
 dbra %d1,bottom_fill
 addq.w #1,%d0
 move.w %d0,0xC00000
 jsr 0x11952
common_done:
 movem.l (%sp)+,%d0-%d7/%a0-%a6
 move.w (%sp)+,%sr
 rts
write_char:
 add.w %d2,%d0
 movem.l %d1-%d2,-(%sp)
 cmpi.l #0x47525931,0xFFFFF938
 bne.w char_done
 move.w %d0,%d1
 andi.w #0x7FF,%d1
 cmpi.w #0x408,%d1
 blo.w char_small
 cmpi.w #0x465,%d1
 bhi.w char_done
 move.w %d0,%d2
 andi.w #0x6000,%d2
 cmpi.w #0x2000,%d2
 bne.w char_large
 cmpi.w #24,0xFFFFB02A
 blo.w char_done
char_large:
 subi.w #0x408,%d1
 addi.w #0xE9,%d1
 cmpi.w #2,0xFFFFF93E
 bne.w char_apply
 addi.w #0x117,%d1
 andi.w #0x9FFF,%d0
 ori.w #0x6000,%d0
 bra.w char_apply
char_small:
 cmpi.w #1,0xFFFFF93E
 bne.w char_done
 cmpi.w #0x41,%d1
 blo.w char_done
 cmpi.w #0x9E,%d1
 bhi.w char_done
 move.w %d0,%d2
 andi.w #0x6000,%d2
 cmpi.w #0x2000,%d2
 beq.w char_small_one
 tst.w %d2
 bne.w char_done
 subi.w #0x41,%d1
 addi.w #0x1E6,%d1
 bra.w char_apply
char_small_one:
 subi.w #0x41,%d1
 addi.w #0x147,%d1
char_apply:
 andi.w #0xF800,%d0
 or.w %d1,%d0
char_done:
 movem.l (%sp)+,%d1-%d2
 move.w %d0,(%a0)
 addq.w #1,0xFFFFB028
 jmp 0x11C5A
footer_background:
 cmpi.l #0x47525931,0xFFFFF938
 bne.w footer_bg_done
 movem.l %d0-%d7,-(%sp)
 move.w #0xA244,%d5
 cmpi.w #2,0xFFFFF93E
 bne.w footer_bg_normal
 move.w #0xE1F0,%d5
footer_bg_normal:
 moveq #24,%d7
footer_bg_row:
 move.l #0xE000,%d0
 move.w %d7,%d1
 lsl.w #7,%d1
 add.l %d1,%d0
 bsr.w command
 move.w %d5,%d3
 addq.w #3,%d3
 cmpi.w #24,%d7
 beq.w footer_bg_bottom
 cmpi.w #27,%d7
 bne.w footer_bg_inside
footer_bg_bottom:
 addq.w #3,%d3
footer_bg_inside:
 move.w %d3,0xC00000
 addq.w #1,%d3
 moveq #37,%d4
footer_bg_fill:
 move.w %d3,0xC00000
 dbra %d4,footer_bg_fill
 move.w %d5,%d3
 addq.w #5,%d3
 cmpi.w #24,%d7
 beq.w footer_edge_bottom
 cmpi.w #27,%d7
 bne.w footer_edge_ready
footer_edge_bottom:
 addq.w #3,%d3
footer_edge_ready:
 move.w %d3,0xC00000
 addq.w #1,%d7
 cmpi.w #28,%d7
 blo.w footer_bg_row
 movem.l (%sp)+,%d0-%d7
footer_bg_done:
 rts
duplicate_font:
 suba.w #32,%sp
 movea.w #94,%a3
 lea card_foremap(%pc),%a4
copy_glyph:
 move.w %d7,%d0
 andi.l #0xFFFF,%d0
 lsl.w #5,%d0
 bsr.w read_command
 movea.l %sp,%a0
 moveq #15,%d0
read_glyph:
 move.w 0xC00000,(%a0)+
 dbra %d0,read_glyph
 movea.l %sp,%a0
 moveq #31,%d2
replace_background:
 move.w %d4,%d5
 btst #2,%d2
 bne.w pattern_row_ready
 ror.b #4,%d5
pattern_row_ready:
 move.b (%a0),%d0
 move.w %d0,%d1
 lsr.w #4,%d1
 andi.w #15,%d1
 cmp.w %d3,%d1
 beq.w upper_pattern
 cmpi.w #2,0xFFFFF93E
 bne.w upper_present
 move.b (%a4,%d1.w),%d1
 lsl.w #4,%d1
 andi.b #15,%d0
 or.b %d1,%d0
 bra.w upper_present
upper_pattern:
 andi.b #15,%d0
 move.w %d5,%d1
 andi.b #0xF0,%d1
 or.b %d1,%d0
upper_present:
 move.w %d0,%d1
 andi.w #15,%d1
 cmp.w %d3,%d1
 beq.w lower_pattern
 cmpi.w #2,0xFFFFF93E
 bne.w lower_present
 move.b (%a4,%d1.w),%d1
 andi.b #0xF0,%d0
 or.b %d1,%d0
 bra.w lower_present
lower_pattern:
 andi.b #0xF0,%d0
 move.w %d5,%d1
 andi.b #15,%d1
 or.b %d1,%d0
lower_present:
 move.b %d0,(%a0)+
 dbra %d2,replace_background
 move.w %d6,%d0
 andi.l #0xFFFF,%d0
 lsl.w #5,%d0
 bsr.w command
 movea.l %sp,%a0
 moveq #7,%d0
write_glyph:
 move.l (%a0)+,0xC00000
 dbra %d0,write_glyph
 addq.w #1,%d7
 addq.w #1,%d6
 subq.l #1,%a3
 cmpa.w #0,%a3
 bne.w copy_glyph
 adda.w #32,%sp
 rts
card_foremap:
 .byte 0,8,5,4,2,1,10,9,8,9,10,11,12,13,14,15
 .even
read_command:
 move.l %d0,%d1
 andi.l #0x3FFF,%d0
 swap %d0
 lsr.l #8,%d1
 lsr.l #6,%d1
 andi.l #3,%d1
 or.l %d1,%d0
 move.l %d0,0xC00004
 rts
custom:
 move.w %sr,-(%sp)
 movem.l %d0-%d7/%a0-%a6,-(%sp)
 ori.w #0x700,%sr
 | Native tile0/glyph transparency in the custom canvas now reveals grey,
 | not the old blue backdrop. Native palette loading restores this on exit.
 move.w #0x444,0xFFFFBD28
 move.l #0xC0000000,0xC00004
 move.w #0x444,0xC00000
 move.w #0x8F02,0xC00004
 move.l #0x60000002,0xC00004
 lea custom_art(%pc),%a0
 move.w #71,%d0
custom_upload:
 move.l (%a0)+,0xC00000
 dbra %d0,custom_upload
 moveq #0,%d7
custom_row:
 move.l #0xC000,%d0
 move.w %d7,%d1
 lsl.w #8,%d1
 add.l %d1,%d0
 bsr.w command
 move.w #0x503,%d3
 tst.w %d7
 bne.w custom_not_top
 move.w #0x500,%d3
custom_not_top:
 cmpi.w #27,%d7
 bne.w custom_type
 move.w #0x506,%d3
custom_type:
 move.w %d3,0xC00000
 addq.w #1,%d3
 moveq #37,%d4
custom_inside:
 move.w %d3,0xC00000
 dbra %d4,custom_inside
 addq.w #1,%d3
 move.w %d3,0xC00000
 addq.w #1,%d7
 cmpi.w #28,%d7
 blo.w custom_row
 jsr 0x11952
 movem.l (%sp)+,%d0-%d7/%a0-%a6
 move.w (%sp)+,%sr
 rts
transfer:
 move.w %sr,-(%sp)
 movem.l %d0-%d7/%a0-%a6,-(%sp)
 ori.w #0x700,%sr
 move.w #0x8F02,0xC00004
 move.l #0x60000002,0xC00004
 lea transfer_art(%pc),%a0
 move.w #79,%d0
upload:
 move.l (%a0)+,0xC00000
 dbra %d0,upload
 moveq #0,%d7
row:
 move.l #0xE000,%d0
 move.w %d7,%d1
 lsl.w #8,%d1
 add.l %d1,%d0
 bsr.w command
 move.w #0x503,%d3
 tst.w %d7
 bne.w not_top
 move.w #0x500,%d3
not_top:
 cmpi.w #27,%d7
 bne.w row_type
 move.w #0x506,%d3
row_type:
 move.w %d3,0xC00000
 addq.w #1,%d3
 moveq #37,%d4
inside:
 move.w %d3,0xC00000
 dbra %d4,inside
 addq.w #1,%d3
 move.w %d3,0xC00000
 addq.w #1,%d7
 cmpi.w #28,%d7
 blo.w row
 | Keep the native selected marker; a darker grey band adds contrast.
 move.w 0xFFFFF104,%d1
 tst.w 0xFFFFF102
 bne.w roster
 mulu.w #3,%d1
 addi.w #10,%d1
 bra.w band
roster:
 tst.w 0xFFFFF10C
 beq.w done
 sub.w 0xFFFFF10E,%d1
 add.w %d1,%d1
 addi.w #9,%d1
band:
 lsl.w #8,%d1
 move.l #0xE002,%d0
 add.l %d1,%d0
 bsr.w command
 moveq #37,%d4
band_loop:
 move.w #0x504,0xC00000
 dbra %d4,band_loop
done:
 jsr 0x11952
 movem.l (%sp)+,%d0-%d7/%a0-%a6
 move.w (%sp)+,%sr
 rts
command:
 move.l %d0,%d1
 andi.l #0x3FFF,%d0
 swap %d0
 lsr.l #8,%d1
 lsr.l #6,%d1
 andi.l #3,%d1
 or.l %d1,%d0
 ori.l #0x40000000,%d0
 move.l %d0,0xC00004
 rts
 .even
transfer_art:
 .byte 0x22,0x22,0x22,0x22,0x23,0x33,0x33,0x33,0x23,0x55,0x55,0x55,0x23,0x55,0x55,0x55
 .byte 0x23,0x55,0x55,0x55,0x23,0x55,0x57,0x77,0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B
 .byte 0x22,0x22,0x22,0x22,0x33,0x33,0x33,0x33,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55
 .byte 0x55,0x55,0x55,0x55,0x77,0x77,0x77,0x77,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0x22,0x22,0x22,0x22,0x33,0x33,0x33,0x52,0x55,0x55,0x55,0x72,0x55,0x55,0x55,0x72
 .byte 0x55,0x55,0x55,0x72,0x77,0x75,0x55,0x72,0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72
 .byte 0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B,0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B
 .byte 0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B,0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72,0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72
 .byte 0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72,0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72
 .byte 0x23,0x55,0x57,0xB7,0x23,0x55,0x57,0x7B,0x23,0x55,0x57,0x33,0x23,0x55,0x55,0x55
 .byte 0x23,0x55,0x55,0x55,0x23,0x55,0x55,0x55,0x25,0x77,0x77,0x77,0x22,0x22,0x22,0x22
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0x33,0x33,0x33,0x33,0x55,0x55,0x55,0x55
 .byte 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x77,0x77,0x77,0x77,0x22,0x22,0x22,0x22
 .byte 0xB7,0x35,0x55,0x72,0x7B,0x35,0x55,0x72,0x33,0x35,0x55,0x72,0x55,0x55,0x55,0x72
 .byte 0x55,0x55,0x55,0x72,0x55,0x55,0x55,0x72,0x77,0x77,0x77,0x72,0x22,0x22,0x22,0x22
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B

 card_greys: .word 0x444,0xCCC,0x888,0x666,0x444,0x222
 common_art:
 .byte 0x77,0x77,0x77,0x77,0x71,0x11,0x11,0x11,0x71,0x22,0x22,0x22,0x71,0x22,0x22,0x22
 .byte 0x71,0x22,0x22,0x22,0x71,0x22,0x22,0x22,0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23
 .byte 0x77,0x77,0x77,0x77,0x11,0x11,0x11,0x11,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22
 .byte 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23
 .byte 0x77,0x77,0x77,0x77,0x11,0x11,0x11,0x27,0x22,0x22,0x22,0x27,0x22,0x22,0x22,0x27
 .byte 0x22,0x22,0x22,0x27,0x22,0x22,0x22,0x27,0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27
 .byte 0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23,0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23
 .byte 0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23,0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23
 .byte 0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23,0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23
 .byte 0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23,0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23
 .byte 0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27,0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27
 .byte 0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27,0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27
 .byte 0x71,0x22,0x22,0x32,0x71,0x22,0x22,0x23,0x71,0x22,0x22,0x11,0x71,0x22,0x22,0x22
 .byte 0x71,0x22,0x22,0x22,0x71,0x22,0x22,0x22,0x72,0x22,0x22,0x22,0x77,0x77,0x77,0x77
 .byte 0x32,0x32,0x32,0x32,0x23,0x23,0x23,0x23,0x11,0x11,0x11,0x11,0x22,0x22,0x22,0x22
 .byte 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x77,0x77,0x77,0x77
 .byte 0x32,0x12,0x22,0x27,0x23,0x12,0x22,0x27,0x11,0x12,0x22,0x27,0x22,0x22,0x22,0x27
 .byte 0x22,0x22,0x22,0x27,0x22,0x22,0x22,0x27,0x22,0x22,0x22,0x27,0x77,0x77,0x77,0x77

 cards_art:
 .byte 0x88,0x88,0x88,0x88,0x82,0x22,0x22,0x22,0x82,0x33,0x33,0x33,0x82,0x33,0x33,0x33
 .byte 0x82,0x33,0x33,0x33,0x82,0x33,0x34,0x44,0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46
 .byte 0x88,0x88,0x88,0x88,0x22,0x22,0x22,0x22,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33
 .byte 0x33,0x33,0x33,0x33,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46
 .byte 0x88,0x88,0x88,0x88,0x22,0x22,0x22,0x38,0x33,0x33,0x33,0x48,0x33,0x33,0x33,0x48
 .byte 0x33,0x33,0x33,0x48,0x44,0x43,0x33,0x48,0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48
 .byte 0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46,0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46
 .byte 0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46,0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46
 .byte 0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46,0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46
 .byte 0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46,0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46
 .byte 0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48,0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48
 .byte 0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48,0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48
 .byte 0x82,0x33,0x34,0x64,0x82,0x33,0x34,0x46,0x82,0x33,0x34,0x22,0x82,0x33,0x33,0x33
 .byte 0x82,0x33,0x33,0x33,0x82,0x33,0x33,0x33,0x83,0x44,0x44,0x44,0x88,0x88,0x88,0x88
 .byte 0x64,0x64,0x64,0x64,0x46,0x46,0x46,0x46,0x22,0x22,0x22,0x22,0x33,0x33,0x33,0x33
 .byte 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x44,0x44,0x44,0x44,0x88,0x88,0x88,0x88
 .byte 0x64,0x23,0x33,0x48,0x46,0x23,0x33,0x48,0x22,0x23,0x33,0x48,0x33,0x33,0x33,0x48
 .byte 0x33,0x33,0x33,0x48,0x33,0x33,0x33,0x48,0x44,0x44,0x44,0x48,0x88,0x88,0x88,0x88

 .even
custom_art:
 .byte 0x35,0x33,0x33,0x33,0x55,0x55,0x55,0x55,0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B
 .byte 0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B,0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B
 .byte 0x33,0x33,0x33,0x33,0x55,0x55,0x55,0x55,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0x33,0x33,0x33,0x72,0x55,0x55,0x55,0x72,0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72
 .byte 0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72,0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72
 .byte 0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B,0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B
 .byte 0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B,0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72,0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72
 .byte 0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72,0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72
 .byte 0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B,0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B
 .byte 0x35,0xB7,0xB7,0xB7,0x35,0x7B,0x7B,0x7B,0x77,0x77,0x77,0x77,0x22,0x22,0x22,0x22
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B
 .byte 0xB7,0xB7,0xB7,0xB7,0x7B,0x7B,0x7B,0x7B,0x77,0x77,0x77,0x77,0x22,0x22,0x22,0x22
 .byte 0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72,0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72
 .byte 0xB7,0xB7,0xB7,0x72,0x7B,0x7B,0x7B,0x72,0x77,0x77,0x77,0x77,0x22,0x22,0x22,0x72
