Found a couple more text control codes:
0x19 0x71 - Move cursor to the box that was active 2 windows ago
0x19 0x72 - Move cursor to the box that was active 3 windows ago
0x19 0x73 - Move cursor to the box that was active before this one
Excellent detective work!
You're finding and understanding things through alteration/experimentation that I'd have found by looking at the source-code itself.
The method isn't important ... for something like this, it's all about the result, and your persistence is paying off!
Congratulations!
I added in a dialogue box from one of the players party after the second line to say:
Player Party: "That sounds like they're talking about the <bleep> there..."
And this is
why I'm taking some of my time to
hopefully provide a little help.
You care enough about the game that you want it to sound
good to an English-speaking audience, and you're not just satisfied with making it
understandable.
Some passions deserve to be supported, even if they're not initially understood or shared.
That's how I felt when I saw SamIAm's work on Zeroigar, and you can see where his passion and enthusiasm lead in our continuing work on Xanadu 1 and Xanadu 2.
At the end of the day, it all (and IMHO always) relies upon someone who has a belief and passion in something informing/educating everyone else into seeing
why they love that thing (game/sport/food/etc), and becoming "believers" themselves.
SamIAm has managed to get me to "believe" in a couple of games now that I didn't even know existed a few years ago.
And after the introduction, and spending months working on them, I understand
why he loves those games, and I've come to share that love, and to trust his opinion.
What megatron-uk is doing here with Cyber Knight seems (to me) to show that same
kind of passion.
He's doing (as esteban would say) "God's Work!".
Speaking of which ...
... here's the data table that Cyber Knight uses to load up the ASCII font into VRAM.
They're grouping a number of individual graphical "assets" into different VRAM "layout" arrangements that get set up at different times.
The ASCII font itself is compressed in bank $16, asset $01 ... but as you can see, the reference to it will need to be modified in a
lot of places if that font is going to be changed.
ASSET BANK $10 ASSET CHUNK $0d
.org $4875
.dw group_4807 ; idx $00 - $4785 (1st font data loaded @ $1000-$1fff)
.dw group_4843 ; idx $01 - $4787
.dw group_487f ; idx $02 - $4789
.dw group_4893 ; idx $03 - $478b
.dw group_4893 ; idx $04 - $478d
.dw group_48d9 ; idx $05 - $478f
.dw group_48ed ; idx $06 - $4791
.dw group_4901 ; idx $07 - $4793
.dw group_4915 ; idx $08 - $4795
.dw group_4929 ; idx $09 - $4797
.dw group_493d ; idx $0a - $4799
.dw group_4951 ; idx $0b - $479b
.dw group_495b ; idx $0c - $479d
.dw group_496f ; idx $0d - $479f
.dw group_49c9 ; idx $0e - $47a1
.dw group_49d3 ; idx $0f - $47a3
.dw group_49dd ; idx $10 - $47a5
.dw group_49dd ; idx $11 - $47a7
.dw group_4a41 ; idx $12 - $47a9
.dw group_4aa5 ; idx $13 - $47ab
.dw group_4b13 ; idx $14 - $47ad
.dw group_4b77 ; idx $15 - $47af
.dw group_4bef ; idx $16 - $47b1
.dw group_4c67 ; idx $17 - $47b3
.dw group_4c67 ; idx $18 - $47b5
.dw group_4cdf ; idx $19 - $47b7
.dw group_4cfd ; idx $1a - $47b9
.dw group_4d1b ; idx $1b - $47bb
.dw group_4d43 ; idx $1c - $47bd
.dw group_4da7 ; idx $1d - $47bf
.dw group_4dc5 ; idx $1e - $47c1
.dw group_4ded ; idx $1f - $47c3
.dw group_4ded ; idx $20 - $47c5
.dw group_4ded ; idx $21 - $47c7
.dw group_4ded ; idx $22 - $47c9
.dw group_4ded ; idx $23 - $47cb
.dw group_4ded ; idx $24 - $47cd
.dw group_4ded ; idx $25 - $47cf
.dw group_4ded ; idx $26 - $47d1
.dw group_4ded ; idx $27 - $47d3
.dw group_4ded ; idx $28 - $47d5
.dw group_4ded ; idx $29 - $47d7
.dw group_4ded ; idx $2a - $47d9
.dw group_4ded ; idx $2b - $47db
.dw group_4ded ; idx $2c - $47dd
.dw group_4ded ; idx $2d - $47df
.dw group_4ded ; idx $2e - $47e1
.dw group_4ded ; idx $2f - $47e3
.dw group_4ded ; idx $30 - $47e5
.dw group_4df7 ; idx $31 - $47e7
.dw group_4e01 ; idx $32 - $47e9
.dw group_4e1f ; idx $33 - $47eb
.dw group_4e29 ; idx $34 - $47ed
.dw group_4e47 ; idx $35 - $47ef
.dw group_4e51 ; idx $36 - $47f1
.dw group_4e5b ; idx $37 - $47f3
.dw group_4e5b ; idx $38 - $47f5
.dw group_4e5b ; idx $39 - $47f7
.dw group_4e97 ; idx $3a - $47f9
.dw group_4edd ; idx $3b - $47fb
.dw group_4f0f ; idx $3c - $47fd
.dw group_4f41 ; idx $3d - $47ff
.dw group_4f73 ; idx $3e - $4801
.dw group_4faf ; idx $3f - $4803
.dw group_4faf ; idx $40 - $4805
; idx $00 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4807: .db $00,$11, $6b, $0c, $80,$00,$80,$80, $16,$01
group_4811: .db $00,$18, $80, $0c, $80,$00,$80,$80, $16,$03
group_481b: .db $b0,$17, $04, $24, $00,$08,$10,$18, $16,$05
group_4825: .db $00,$11, $01, $08, $c0,$80,$80,$80, $16,$01
group_482f: .db $00,$10, $08, $20, $00,$08,$10,$18, $16,$0d
group_4839: .db $00,$20, $00, $0c, $80,$00,$80,$80, $16,$07
; idx $01 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4843: .db $00,$11, $6b, $0c, $40,$00,$40,$40, $16,$01
group_484d: .db $00,$18, $80, $0c, $40,$00,$40,$40, $16,$03
group_4857: .db $b0,$17, $04, $24, $00,$08,$10,$18, $16,$05
group_4861: .db $00,$11, $01, $08, $c0,$80,$80,$80, $16,$01
group_486b: .db $00,$10, $08, $20, $00,$08,$10,$18, $16,$0d
group_4875: .db $00,$20, $00, $0c, $40,$00,$40,$40, $16,$07
; idx $02 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_487f: .db $00,$30, $0c, $1c, $00,$08,$10,$80, $1c,$11
group_4889: .db $c0,$30, $a7, $1c, $00,$08,$10,$c0, $1c,$13
; idx $03 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4893: .db $00,$11, $6b, $0c, $40,$00,$40,$40, $16,$01
group_489d: .db $00,$18, $80, $0c, $40,$00,$40,$40, $16,$03
group_48a7: .db $b0,$17, $04, $24, $00,$08,$10,$18, $16,$05
group_48b1: .db $00,$11, $01, $08, $c0,$80,$80,$80, $16,$01
group_48bb: .db $00,$10, $07, $20, $00,$08,$10,$18, $16,$0d
group_48c5: .db $00,$21, $20, $0c, $80,$00,$80,$80, $16,$01
group_48cf: .db $00,$21, $01, $08, $c0,$80,$80,$80, $16,$01
; idx $05 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_48d9: .db $80,$24, $08, $0c, $40,$00,$40,$40, $16,$09
group_48e3: .db $80,$26, $08, $0c, $40,$00,$40,$40, $16,$0b
; idx $06 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_48ed: .db $00,$70, $0d, $24, $00,$08,$10,$18, $36,$05
group_48f7: .db $d0,$70, $30, $1c, $00,$08,$10,$80, $36,$0f
; idx $07 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4901: .db $00,$70, $0a, $24, $00,$08,$10,$18, $36,$07
group_490b: .db $a0,$70, $2a, $1c, $00,$08,$10,$80, $36,$11
; idx $08 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4915: .db $00,$70, $0b, $24, $00,$08,$10,$18, $36,$09
group_491f: .db $b0,$70, $3c, $1c, $00,$08,$10,$80, $36,$13
; idx $09 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4929: .db $00,$70, $03, $24, $00,$08,$10,$18, $36,$0b
group_4933: .db $30,$70, $46, $1c, $00,$08,$10,$80, $36,$15
; idx $0a : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_493d: .db $00,$70, $0b, $24, $00,$08,$10,$18, $36,$0d
group_4947: .db $b0,$70, $3f, $1c, $00,$08,$10,$80, $36,$17
; idx $0b : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4951: .db $00,$20, $64, $0c, $80,$00,$80,$80, $24,$13
; idx $0c : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_495b: .db $00,$20, $98, $0c, $80,$80,$80,$80, $24,$15
group_4965: .db $00,$30, $98, $0c, $80,$00,$80,$80, $24,$15
; idx $0d : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_496f: .db $00,$10, $01, $20, $00,$08,$10,$18, $16,$0d
group_4979: .db $00,$11, $6b, $0c, $00,$80,$80,$80, $16,$01
group_4983: .db $00,$18, $80, $0c, $00,$80,$80,$80, $16,$03
group_498d: .db $00,$21, $6b, $0c, $80,$00,$80,$80, $16,$01
group_4997: .db $00,$28, $80, $0c, $80,$00,$80,$80, $16,$03
group_49a1: .db $00,$31, $6b, $0c, $00,$00,$80,$80, $16,$01
group_49ab: .db $00,$38, $80, $0c, $00,$00,$80,$80, $16,$03
group_49b5: .db $00,$41, $6b, $0c, $80,$80,$00,$80, $16,$01
group_49bf: .db $00,$48, $80, $0c, $80,$80,$00,$80, $16,$03
; idx $0e : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_49c9: .db $00,$30, $40, $1c, $00,$08,$10,$80, $24,$11
; idx $0f : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_49d3: .db $00,$30, $f0, $24, $00,$08,$10,$18, $24,$01
; idx $10 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_49dd: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_49e7: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_49f1: .db $a0,$43, $20, $1c, $00,$08,$10,$80, $2c,$07
group_49fb: .db $a0,$45, $31, $1c, $00,$08,$10,$80, $2e,$0d
group_4a05: .db $b0,$48, $0c, $1c, $00,$08,$10,$80, $2c,$0b
group_4a0f: .db $70,$49, $01, $1c, $00,$08,$10,$80, $2c,$0d
group_4a19: .db $80,$49, $43, $1c, $00,$08,$10,$80, $2c,$0f
group_4a23: .db $b0,$4d, $05, $1c, $00,$08,$10,$80, $2c,$11
group_4a2d: .db $00,$4e, $19, $24, $00,$08,$10,$18, $2c,$13
group_4a37: .db $90,$4f, $04, $1c, $00,$08,$80,$10, $2e,$19
; idx $12 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4a41: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4a4b: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4a55: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2c,$15
group_4a5f: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4a69: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4a73: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$33
group_4a7d: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2c,$35
group_4a87: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4a91: .db $10,$49, $22, $1c, $00,$08,$10,$10, $2c,$25
group_4a9b: .db $b0,$4b, $44, $1c, $00,$08,$10,$c0, $2e,$11
; idx $13 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4aa5: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4aaf: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4ab9: .db $a0,$43, $31, $1c, $00,$08,$10,$80, $2e,$0d
group_4ac3: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$17
group_4acd: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$19
group_4ad7: .db $80,$47, $22, $1c, $00,$08,$10,$80, $2c,$1b
group_4ae1: .db $a0,$49, $02, $1c, $00,$08,$10,$80, $2c,$15
group_4aeb: .db $c0,$49, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4af5: .db $b0,$4c, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4aff: .db $70,$4d, $01, $1c, $00,$08,$10,$80, $2c,$1f
group_4b09: .db $00,$4e, $20, $1c, $00,$08,$10,$80, $2c,$03
; idx $14 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4b13: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4b1d: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4b27: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2c,$15
group_4b31: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4b3b: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4b45: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$2b
group_4b4f: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2c,$2d
group_4b59: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4b63: .db $10,$49, $22, $1c, $00,$08,$10,$10, $2c,$25
group_4b6d: .db $30,$4b, $3b, $1c, $00,$08,$80,$10, $2c,$23
; idx $15 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4b77: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4b81: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4b8b: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2e,$21
group_4b95: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4b9f: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4ba9: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$2b
group_4bb3: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2c,$2d
group_4bbd: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4bc7: .db $10,$49, $22, $24, $00,$08,$10,$18, $2e,$0f
group_4bd1: .db $30,$4b, $0b, $1c, $00,$08,$80,$10, $2c,$27
group_4bdb: .db $e0,$4b, $3c, $1c, $00,$08,$80,$10, $2c,$29
group_4be5: .db $00,$4f, $10, $1c, $00,$08,$80,$10, $2c,$01
; idx $16 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4bef: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4bf9: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4c03: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2c,$2f
group_4c0d: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4c17: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4c21: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$2b
group_4c2b: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2c,$2d
group_4c35: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4c3f: .db $10,$49, $22, $24, $00,$08,$10,$18, $2c,$25
group_4c49: .db $30,$4b, $0b, $1c, $00,$08,$80,$10, $2c,$27
group_4c53: .db $e0,$4b, $30, $1c, $00,$08,$80,$10, $2c,$31
group_4c5d: .db $00,$4f, $10, $1c, $00,$08,$80,$10, $2c,$01
; idx $17 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4c67: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4c71: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4c7b: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2c,$15
group_4c85: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4c8f: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4c99: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$33
group_4ca3: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2c,$35
group_4cad: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4cb7: .db $10,$49, $22, $24, $00,$08,$10,$18, $2c,$25
group_4cc1: .db $30,$4b, $0b, $1c, $00,$08,$80,$10, $2c,$27
group_4ccb: .db $e0,$4b, $30, $1c, $00,$08,$80,$10, $2c,$29
group_4cd5: .db $00,$4f, $10, $1c, $00,$08,$80,$10, $2c,$01
; idx $19 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4cdf: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4ce9: .db $60,$43, $08, $1c, $00,$08,$10,$80, $2e,$13
group_4cf3: .db $e0,$43, $92, $1c, $00,$08,$10,$c0, $2e,$15
; idx $1a : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4cfd: .db $00,$40, $16, $1c, $00,$08,$10,$80, $2e,$17
group_4d07: .db $60,$41, $1e, $1c, $00,$08,$80,$10, $2e,$1f
group_4d11: .db $40,$43, $cc, $1c, $00,$08,$10,$c0, $2e,$25
; idx $1b : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4d1b: .db $00,$40, $0b, $1c, $00,$08,$10,$80, $2c,$37
group_4d25: .db $b0,$40, $0c, $1c, $00,$08,$10,$80, $2c,$39
group_4d2f: .db $70,$41, $98, $1c, $00,$08,$10,$c0, $2c,$3b
group_4d39: .db $f0,$4a, $17, $1c, $00,$08,$10,$c0, $2e,$23
; idx $1c : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4d43: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4d4d: .db $60,$43, $04, $1c, $00,$08,$10,$80, $2c,$05
group_4d57: .db $a0,$43, $02, $1c, $00,$08,$10,$80, $2c,$15
group_4d61: .db $c0,$43, $2f, $1c, $00,$08,$10,$80, $2c,$09
group_4d6b: .db $b0,$46, $0c, $1c, $00,$08,$10,$80, $2c,$1d
group_4d75: .db $70,$47, $01, $1c, $00,$08,$10,$80, $2c,$1f
group_4d7f: .db $80,$47, $10, $1c, $00,$08,$10,$80, $2e,$01
group_4d89: .db $80,$48, $09, $1c, $00,$08,$10,$80, $2c,$21
group_4d93: .db $30,$4a, $1a, $1c, $00,$08,$10,$c0, $2e,$03
group_4d9d: .db $b0,$4a, $08, $24, $00,$08,$10,$18, $2e,$1b
; idx $1d : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4da7: .db $40,$40, $13, $1c, $00,$08,$10,$c0, $2e,$05
group_4db1: .db $70,$41, $98, $1c, $00,$08,$10,$c0, $2c,$3b
group_4dbb: .db $f0,$4a, $49, $1c, $00,$08,$10,$80, $2e,$07
; idx $1e : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4dc5: .db $00,$40, $36, $1c, $00,$08,$10,$80, $2c,$03
group_4dcf: .db $60,$43, $11, $1c, $00,$08,$10,$80, $2e,$1d
group_4dd9: .db $70,$44, $0c, $1c, $00,$08,$80,$10, $2e,$09
group_4de3: .db $30,$45, $96, $1c, $00,$08,$10,$c0, $2e,$0b
; idx $1f : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4ded: .db $00,$60, $fb, $1c, $00,$08,$10,$80, $22,$01
; idx $31 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4df7: .db $00,$70, $32, $1c, $00,$08,$10,$80, $22,$03
; idx $32 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4e01: .db $00,$70, $b3, $0c, $00,$00,$00,$80, $22,$07
group_4e0b: .db $30,$7b, $25, $1c, $00,$08,$10,$80, $22,$09
group_4e15: .db $80,$7d, $09, $1d, $00,$08,$10,$c0, $22,$0b
; idx $33 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4e1f: .db $00,$70, $a1, $1c, $00,$08,$10,$80, $22,$05
; idx $34 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4e29: .db $00,$70, $b3, $8c, $00,$00,$00,$80, $22,$07
group_4e33: .db $30,$7b, $25, $9c, $00,$08,$10,$80, $22,$09
group_4e3d: .db $80,$7d, $03, $9d, $00,$08,$10,$c0, $22,$0b
; idx $35 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4e47: .db $00,$0e, $10, $0c, $80,$00,$80,$80, $16,$01
; idx $36 : $32 $33 $34 $35 $36 $37 $38 $39 BNK IDX
group_4e51: .db $10,$70, $7d, $1c, $00,$08,$10,$80, $22,$0d
...
group_4faf: .ds $42af - *