문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[게임보이]]用 開發키트, [[RGBDS]]를 爲한 [[UTF-8]] 디코딩 函數. 出力은 [[RAM]] wConvertedUnicode에 [[UTF-32]]로 디코딩되어 나온다. 메모리 空間이 不足하거나 使用할수 없을境遇 레지스터만으로 出力하도록 맨끝部分을 改造할수있다. 매크로內에서 呼出되는 <code>ReadNextByte</code>는 다음 臺詞 바이트를 가져오는 役割을 하며, 게임마다 따로 具顯하여야 한다. <pre> macro read_next_byte inc de call ReadNextByte endm ; @return wConvertedUnicode: utf-32 codepoint UTF8_to_UTF32:: .dialog ld l, $00 jr .begin .dialog_name ld l, $01 jr .begin .tile ld l, $02 .begin ld h, $00 bit 7, a jr z, .singleByte bit 6, a jp z, .end bit 5, a jr z, .doubleByte bit 4, a jr z, .tripleByte bit 3, a jr z, .quadByte jr .end .quadByte and a, $07 rla rla ld h, a read_next_byte push af and a, $30 rra rra rra rra or h ld h, a pop af and a, $0f rla rla rla rla ld b, a read_next_byte push af and a, $3c rra rra or b ld b, a jr .lastByte .tripleByte and a, $0f rla rla rla rla ld b, a read_next_byte push af and a, $3c rra rra or b ld b, a jr .lastByte .doubleByte push af and a, $1c rra rra ld b, a .lastByte pop af and a, $03 rra rra rra ld c, a read_next_byte and a, $3f or c ld c, a jr .end .singleByte and a, $7f ld b, $00 ld c, a .end push af xor a ld [wConvertedUnicode + 0], a ld a, h ld [wConvertedUnicode + 1], a ld a, b ld [wConvertedUnicode + 2], a ld a, c ld [wConvertedUnicode + 3], a pop af ret </pre> UTF-8/게임보이/RGBDS 문서로 돌아갑니다.