ワンクリックで
new-screen
Scaffold a new display screen for the SNES menu ROM. Use when adding a new UI screen, display mode, or information page.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Scaffold a new display screen for the SNES menu ROM. Use when adding a new UI screen, display mode, or information page.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | new-screen |
| description | Scaffold a new display screen for the SNES menu ROM. Use when adding a new UI screen, display mode, or information page. |
| argument-hint | [screen-name] |
Scaffold a new display screen for the sd2snes SNES menu ROM.
Every screen follows the same pattern:
sep/rep for correct A/X/Y widths)isr_done each frame)The 64tass port's poc_display in main.a65 is the primary reference. Key differences from snescom:
: chaining — sep #$20 and .as on separate lines#label >> 16 instead of #^label#label & $ffff instead of #!label.databank $7e must be active for WRAM buffer access in hiprintconst.a65 with .text "..." + .byte 0| Row | Content |
|---|---|
| 0-1 | Top gradient (Mode 5 starts at scanline 8) |
| 2-7 | Pink header area (title, subtitle, byline) |
| 8 | Transition line (pink-to-black border) |
| 9-28 | Main content area (dark gradient background) |
| 29-30 | Bottom border area |
my_screen
; Assumes: .databank $7e, sep #$20 (.as), rep #$10 (.xl)
; Title line at row 10
lda #10
sta print_y
lda #3 ; left column
sta print_x
lda #my_string >> 16
sta print_bank
ldx #my_string & $ffff
stx print_src
lda #1 ; palette 1 = bold/highlight
sta print_pal
lda #32
sta print_count
jsr hiprint
; Wait one NMI for DMA to VRAM
- lda isr_done
lsr
bcc -
stz isr_done
rts
The snescom poc_display in snes/main.a65 (~line 121) uses the original syntax:
poc_display:
sep #$20 : .as ; 8-bit accumulator
rep #$10 : .xl ; 16-bit index (needed for stx print_src)
lda #10
sta print_y
lda #3
sta print_x
lda #^emu_str1
sta print_bank
ldx #!emu_str1
stx print_src
lda #1 ; palette 1 = bold
sta print_pal
lda #32
sta print_count
jsr hiprint
- lda isr_done
lsr
bcc -
stz isr_done
rts
| Row | Content |
|---|---|
| 0-8 | Logo area (occupied by logo tilemap + sprites) |
| 9 | First usable text row |
| 10-28 | Main content area |
| 29-30 | Status bar area |
Define strings in const.a65:
.byt "Title Text Here", 0.text "Title Text Here" then .byte 0Write the display routine using the template above. Key points:
Wire it up:
emu_mode in main.a65Ensure brightness: verify cur_bright, tgt_bright >= $0f. Write $2100 directly for immediate effect if needed.
Frame loop (persistent display):
- lda isr_done
lsr
bcc -
stz isr_done
bra - ; infinite loop
Input handling (optional, requires pad.a65):
- lda isr_done
lsr
bcc -
stz isr_done
jsr read_pad
lda pad1trig
and #$80 ; B button
bne exit_screen
bra -
rep #$10 / .xl before stx print_src (corrupts print_src in 8-bit mode).databank $7e directive (hiprint writes to WRAM buffers)65816 assembly and SNES PPU reference for the sd2snes menu ROM. Auto-loads when editing .a65 assembly files, working with SNES graphics, palettes, HDMA, or the menu ROM codebase.
FXPAK Pro (Mk.III) hardware reference — MCU pin mapping, GPIO usage, expansion options, and board layout notes.
Build the SNES menu ROM or MCU firmware. Supports snescom, 64tass, and MCU firmware targets.
Build and deploy menu ROM and/or MCU firmware to the FXPAK Pro SD card. Backs up existing files first.
Guide for porting snescom assembly code to 64tass. Use when translating code between snes/ and snes-64tass/, or when hitting 64tass build errors.
Build the SNES menu ROM then launch it in bsnes-plus emulator for visual testing. Supports both snescom and 64tass targets.