ReadSpeechCharacters: C0/8427: A606 ldx $06 C0/8429: 86AB stx $AB C0/842B: A6B1 ldx $B1 C0/842D: BF0000CA lda $CA0000,X ; jsr $E02D60 in RPGe's C0/8431: C9FF cmp #$FF C0/8433: F01C beq $8451 C0/8435: C9CD cmp #$CD C0/8437: 9003 bcc $843C C0/8439: 4C0885 jmp $8508 ; OverCDcharacters func ; Special characters C0/843C: C920 cmp #$20 C0/843E: B011 bcs $8451 ; NextLineAndNormal func ; Normal characters C0/8440: C220 rep #$20 ; Characters under $20 ; Special characters C0/8442: 0A asl A C0/8443: AA tax C0/8444: BF138BC0 lda $C08B13,X ; jump table C0/8448: 8523 sta $23 C0/844A: A506 lda $06 C0/844C: E220 sep #$20 C0/844E: 6C230B jmp ($0B23) NextLineAndNormal: C0/8451: A4AB ldy $AB C0/8453: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8456: C8 iny C0/8457: 84AB sty $AB C0/8459: A4B1 ldy $B1 C0/845B: C8 iny C0/845C: 84B1 sty $B1 ; !!!REACHPOINT!!!, Pointer to the pos to read +=1 C0/845E: A4AB ldy $AB C0/8460: C04000 cpy #$0040 ; #$00F0 in RPGe's C0/8463: D0C6 bne $842B C0/8465: 60 rts char0f: ; Character 0f - Autoclose C0/8466: A6B1 ldx $B1 C0/8468: A4AB ldy $AB C0/846A: BF0000CA lda $CA0000,X ; jsr $E02D60 C0/846E: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8471: C8 iny C0/8472: 84AB sty $AB C0/8474: 4C5984 jmp $8459 char17: ; Character 17 - Character Names C0/8477: A6B1 ldx $B1 C0/8479: A4AB ldy $AB C0/847B: BF0000CA lda $CA0000,X ; jsr $E02D60 in RPGe's C0/847F: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8482: E8 inx C0/8483: C8 iny C0/8484: BF0000CA lda $CA0000,X ; jsr $E02D60 in RPGe's C0/8488: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/848B: 86B1 stx $B1 C0/848D: C8 iny C0/848E: 84AB sty $AB C0/8490: 4C5984 jmp $8459 char00: ; Character 00 - End of Speech C0/8493: A4AB ldy $AB C0/8495: A9FF lda #$FF C0/8497: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/849A: C8 iny C0/849B: C04000 cpy #$0040 ; F0 in RPGe's C0/849E: F005 beq $84A5 C0/84A0: A900 lda #$00 C0/84A2: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/84A5: A04000 ldy #$0040 ; F0 in RPGe's C0/84A8: 84AB sty $AB C0/84AA: E6B3 inc $B3 C0/84AC: 4C5984 jmp $8459 char01: ; Character 01 - End of line C0/84AF: C220 rep #$20 C0/84B1: A5AB lda $AB C0/84B3: 29F0FF and #$FFF0 ; jsr $E02EE6 in RPGe's C0/84B6: 18 clc ; . C0/84B7: 691000 adc #$0010 ; . C0/84BA: 8523 sta $23 C0/84BC: A506 lda $06 C0/84BE: E220 sep #$20 C0/84C0: A4AB ldy $AB C0/84C2: C423 cpy $23 C0/84C4: F01E beq $84E4 C0/84C6: A9FF lda #$FF C0/84C8: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/84CB: C8 iny C0/84CC: C423 cpy $23 C0/84CE: F014 beq $84E4 C0/84D0: A901 lda #$01 C0/84D2: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/84D5: C8 iny C0/84D6: C423 cpy $23 C0/84D8: F00A beq $84E4 C0/84DA: A9FF lda #$FF C0/84DC: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/84DF: C8 iny C0/84E0: C423 cpy $23 C0/84E2: D0F8 bne $84DC C0/84E4: 84AB sty $AB C0/84E6: 4C5984 jmp $8459 char02: ; Character 02 - Butz C0/84E9: A606 ldx $06 C0/84EB: A4AB ldy $AB C0/84ED: BD9009 lda $0990,X C0/84F0: C9FF cmp #$FF C0/84F2: F00F beq $8503 C0/84F4: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/84F7: A900 lda #$00 C0/84F9: 99131A sta $1A13,Y ; $1C00,Y in RPGe's C0/84FC: C8 iny C0/84FD: E8 inx C0/84FE: E00600 cpx #$0006 C0/8501: D0EA bne $84ED C0/8503: 84AB sty $AB C0/8505: 4C5984 jmp $8459 OverCDCharacters: ; A = Character to read C0/8508: 38 sec C0/8509: E9B2 sbc #$B2 ; Set over CD characters to a range from 1C to 4C C0/850B: 8005 bra $8512 ; And jump to 8512 C0/850D: 8A txa C0/850E: 4A lsr A ; Set under 20 characters to a range from 00 to 1B C0/850F: 38 sec ; . C0/8510: E903 sbc #$03 ; . C0/8512: AA tax C0/8513: BF4185C0 lda $C08541,X ; Sizes of the 00 to 4C dictionary entries C0/8517: 850D sta $0D C0/8519: 640E stz $0E C0/851B: C220 rep #$20 C0/851D: 8A txa C0/851E: 0A asl A C0/851F: 0A asl A C0/8520: 0A asl A C0/8521: AA tax C0/8522: A506 lda $06 C0/8524: E220 sep #$20 C0/8526: A4AB ldy $AB C0/8528: BF8F85C0 lda $C0858F,X ; loop{ // read word from the dictionary C0/852C: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/852F: BFF787C0 lda $C087F7,X ; ???? the word may be kanjis and because of it we are using two tables C0/8533: 99131A sta $1A13,Y ; $1C00,Y in RPGe's C0/8536: E8 inx C0/8537: C8 iny C0/8538: C60D dec $0D C0/853A: D0EC bne $8528 ; } C0/853C: 84AB sty $AB C0/853E: 4C5984 jmp $8459 dictionarySizes_00C08541: 05 05 04 02 02 04 03 02 02 00 04 02 00 00 00 00 02 03 03 02 00 05 03 04 05 04 06 02 01 02 01 01 01 01 01 04 01 01 01 02 01 01 01 02 06 02 02 02 02 01 02 01 03 02 02 01 01 02 02 04 05 03 03 02 03 03 04 02 02 02 02 04 03 02 02 08 06 01 dictionaryWordsLoByte_00C0858F: 6E A8 78 7E AA 00 00 00 7E 8C 6E C5 B8 00 00 00 64 C4 64 C4 00 00 00 00 37 BF 00 00 00 00 00 00 8D AB 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF 00 00 00 00 00 FF FF 00 00 00 00 00 00 12 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 9B 52 57 00 00 00 00 04 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 0D 00 00 00 00 00 00 76 46 D0 00 00 00 00 00 9E 46 D0 00 00 00 00 00 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8E 6E 78 44 78 00 00 00 AC 92 D0 00 00 00 00 00 2A A6 64 D0 00 00 00 00 64 C4 A8 78 D0 00 00 00 6E AA AA D0 00 00 00 00 91 37 8D 81 BF B9 00 00 C9 C9 00 00 00 00 00 00 CE 00 00 00 00 00 00 00 BD 85 00 00 00 00 00 00 D0 00 00 00 00 00 00 00 D1 00 00 00 00 00 00 00 D2 00 00 00 00 00 00 00 D3 00 00 00 00 00 00 00 D4 00 00 00 00 00 00 00 1B 95 08 AD 00 00 00 00 D6 00 00 00 00 00 00 00 D7 00 00 00 00 00 00 00 D8 00 00 00 00 00 00 00 93 8D 00 00 00 00 00 00 DA 00 00 00 00 00 00 00 DB 00 00 00 00 00 00 00 DC 00 00 00 00 00 00 00 C7 C7 00 00 00 00 00 00 3F 8D 37 C3 89 25 00 00 61 E3 00 00 00 00 00 00 B9 3F 00 00 00 00 00 00 85 8D 00 00 00 00 00 00 77 7F 00 00 00 00 00 00 E3 00 00 00 00 00 00 00 77 85 00 00 00 00 00 00 E5 00 00 00 00 00 00 00 91 0F 03 00 00 00 00 00 C9 CB 00 00 00 00 00 00 45 79 00 00 00 00 00 00 E9 00 00 00 00 00 00 00 EA 00 00 00 00 00 00 00 73 9B 00 00 00 00 00 00 9B 02 00 00 00 00 00 00 70 AA 2A C5 00 00 00 00 86 D7 87 62 A7 00 00 00 1C BD 85 00 00 00 00 00 2B 0B D0 00 00 00 00 00 6B A7 00 00 00 00 00 00 2C 02 0C 00 00 00 00 00 0E 3D 6F 00 00 00 00 00 8D 37 C3 89 00 00 00 00 2B E3 00 00 00 00 00 00 7F 81 00 00 00 00 00 00 7F 9B 00 00 00 00 00 00 9D 79 00 00 00 00 00 00 6F 3F 75 8D 00 00 00 00 6B BD 7F 00 00 00 00 00 7F C9 00 00 00 00 00 00 95 E3 00 00 00 00 00 00 8D 93 8D 6B A7 93 B9 3F 20 38 9B 61 35 9D 00 00 dictionaryWordsHiByte_00C087F7: 00 00 00 00 00 00 00 00 ; 00 means normal character 00 00 00 00 00 00 00 00 ; 01 means 1E kanji 00 00 00 00 00 00 00 00 ; 02 means 1F kanji 00 00 00 00 00 00 00 00 ; Avoiding kanjis in this dictionary allows to unuse this table to free ROM space 00 00 00 00 00 00 00 00 ; That can be done changing C0/852F: "(BF F7 87 C0) lda $C087F7,X" to "(A9 00 EA EA) lda #$00 + nop + nop" 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 01 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 01 01 00 00 00 01 00 00 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 00 00 00 00 00 00 char1E: ; Character 1E - Kanjis 1E C0/8A5F: A6B1 ldx $B1 C0/8A61: A4AB ldy $AB C0/8A63: A901 lda #$01 C0/8A65: 99131A sta $1A13,Y ; $1C00,Y in RPGe's = 1 in every Kanji 1E C0/8A68: 8009 bra $8A73 char1F: ; Character 1F - Kanjis 1F C0/8A6A: A6B1 ldx $B1 C0/8A6C: A4AB ldy $AB C0/8A6E: A902 lda #$02 C0/8A70: 99131A sta $1A13,Y ; $1C00,Y in RPGe's = 2 in every Kanji 1F ; Common to character 1E-F - Kanjis C0/8A73: BF0100CA lda $CA0001,X ; jsr $E02DD0 in RPGe's C0/8A77: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8A7A: C8 iny C0/8A7B: 84AB sty $AB C0/8A7D: A4B1 ldy $B1 C0/8A7F: C8 iny C0/8A80: 84B1 sty $B1 C0/8A82: 4C5984 jmp $8459 ; ReachPoint char12: ; Character 12 - Ability C0/8A85: ADA316 lda $16A3 C0/8A88: C220 rep #$20 C0/8A8A: 0A asl A C0/8A8B: 850F sta $0F C0/8A8D: 0A asl A C0/8A8E: 18 clc C0/8A8F: 650F adc $0F C0/8A91: AA tax C0/8A92: A506 lda $06 C0/8A94: E220 sep #$20 C0/8A96: 6409 stz $09 C0/8A98: BF811CD1 lda $D11C81,X ; Magic names without the first character C0/8A9C: C9FF cmp #$FF C0/8A9E: F012 beq $8AB2 C0/8AA0: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8AA3: A900 lda #$00 C0/8AA5: 99131A sta $1A13,Y ; $1C00,Y in RPGe's C0/8AA8: C8 iny C0/8AA9: E8 inx C0/8AAA: E609 inc $09 C0/8AAC: A509 lda $09 C0/8AAE: C906 cmp #$06 C0/8AB0: D0E6 bne $8A98 C0/8AB2: 84AB sty $AB C0/8AB4: 4C5984 jmp $8459 char11: ; Character 11 - Item C0/8AB7: ADA216 lda $16A2 C0/8ABA: C220 rep #$20 C0/8ABC: 850F sta $0F C0/8ABE: 0A asl A ; jsr $E031B2 in RPGe's C0/8ABF: 0A asl A ; . C0/8AC0: 0A asl A ; . C0/8AC1: 18 clc ; . C0/8AC2: 650F adc $0F C0/8AC4: AA tax C0/8AC5: A506 lda $06 C0/8AC7: E220 sep #$20 C0/8AC9: 6409 stz $09 C0/8ACB: BF8113D1 lda $D11381,X ; Item names (menu) without the first character (8B), lda $E75860,X in RPGe's C0/8ACF: C9FF cmp #$FF ; jmp $E02F11 in RPGe's C0/8AD1: F012 beq $8AE5 ; . C0/8AD3: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8AD6: A900 lda #$00 C0/8AD8: 99131A sta $1A13,Y ; $1C00,Y in RPGe's C0/8ADB: C8 iny C0/8ADC: E8 inx C0/8ADD: E609 inc $09 C0/8ADF: A509 lda $09 C0/8AE1: C908 cmp #$08 ; #$18 in RPGe's C0/8AE3: D0E6 bne $8ACB C0/8AE5: 84AB sty $AB C0/8AE7: 4C5984 jmp $8459 char10: ; Character 10 - Gil C0/8AEA: 640C stz $0C C0/8AEC: A606 ldx $06 C0/8AEE: A50C lda $0C C0/8AF0: D007 bne $8AF9 C0/8AF2: BDAD10 lda $10AD,X C0/8AF5: F011 beq $8B08 C0/8AF7: E60C inc $0C C0/8AF9: BDAD10 lda $10AD,X C0/8AFC: 18 clc C0/8AFD: 6953 adc #$53 C0/8AFF: 99D319 sta $19D3,Y ; $1B00,Y in RPGe's C0/8B02: A900 lda #$00 C0/8B04: 99131A sta $1A13,Y ; $1C00,Y in RPGe's C0/8B07: C8 iny C0/8B08: E8 inx C0/8B09: E00700 cpx #$0007 C0/8B0C: D0E0 bne $8AEE C0/8B0E: 84AB sty $AB C0/8B10: 4C5984 jmp $8459 jumpTable_00C08B13: 00C0:8B13 (Pointers To Read Functions) 93 84 ; 00 - [End of text] AF 84 ; 01 - [Line Break] E9 84 ; 02 - [Butz] 0D 85 ; 03 - generic 0D 85 ; 04 - generic 0D 85 ; 05 - generic 0D 85 ; 06 - generic 0D 85 ; 07 - generic 0D 85 ; 08 - generic 0D 85 ; 09 - generic 0D 85 ; 0a - generic 0D 85 ; 0b - generic 0D 85 ; 0c - generic 0D 85 ; 0d - generic 0D 85 ; 0e - generic 66 84 ; 0f - [AutoClose] EA 8A ; 10 - [Gil] B7 8A ; 11 - [Item] 85 8A ; 12 - [Ability] 0D 85 ; 13 - generic 0D 85 ; 14 - generic 0D 85 ; 15 - generic 0D 85 ; 16 - generic 77 84 ; 17 - [Character Names] 0D 85 ; 18 - generic 0D 85 ; 19 - generic 0D 85 ; 1a - generic 0D 85 ; 1b - generic 0D 85 ; 1c - generic 0D 85 ; 1d - generic 5F 8A ; 1e - [Words 1E] 6A 8A ; 1f - [Words 1F]