aosprotocol icon indicating copy to clipboard operation
aosprotocol copied to clipboard

Player names in Voxlap do not use code page 437, unless they want to.

Open DavidCo113 opened this issue 2 years ago • 15 comments

The mystery encoding is used in the tab menu only, and code page 437 is used in chat.

I found a source that specified what character set that is used some time before. However, I have lost it, so I need to dig it out of my bookmarks later.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

2023-06-25_19:07:29_1687741649 cropped And here is some evidence.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

In addition, the player's name is "fish \x01\x02\x03\x80"

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

Unverified, but judging by the \x80 character Windows-1252 seems like a good candidate.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

I may have found this in pyspades.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

pyspades/common.pyx:108:# Ace of Spades uses the CP437 character set for chat and Windows-1252 for pyspades/common.pyx-109-# player list

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

Looks like \x7f is a block character instead of a delete character however.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

Looks like a lot of characters are block characters actually.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

And I believe all characters <= 0x20 are rendered as a space, along with all characters labeled "unused" on wikipedia. Those are \x81, \x90, \x8d, \x9d, \x8f

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

I have manually confirmed that all characters <=0x20 are rendered as a space character.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

However, I am uncertain of the location of all "block" characters as of now.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

Probably can't hurt to create a buffer overflow to check the entire character set at once, right?

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

Voxlap just denies the packet, how sad.

DavidCo113 avatar Jun 26 '23 01:06 DavidCo113

I have created an accurate table, using Wikipedia's table as a reference.

0 1 2 3 4 5 6 7 8 9 a b c d e f
0
1
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~
8 ˆ
9 ˜
a ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ - ® ¯
b ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
c À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
d Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
e à á â ã ä å æ ç è é ê ë ì í î ï
f ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Note: 0x98 and 0x7e look identical in Voxlap. They are shown in respective order here. image image

Note that 0xa6 and 0x7c are NOT identical, however. They are once again shown in respective order. image image

DavidCo113 avatar Jun 26 '23 03:06 DavidCo113

Hi, for the record, condescension and snark towards a project is not very advisable if you want any support or your changes merged etc.

We are all volunteers doing this for free in what little spare time we have. We are working with the best human-readable resource there was, which was a semi-corrupt 2012 wiki database dump which I went to pains to obtain from the owner and manually convert from it's weird format to markdown.

If you want to help us continue improving it from that state that's great, but only if you're going to behave in a way that doesn't make me want to do literally anything else with my time. Consider this your warning.

NotAFile avatar Jun 26 '23 07:06 NotAFile

My apologies. I acknowledge that I acted immature and unprofessional in my comments on and in this project, repeatedly. I do not mean to get on any of your bad sides or annoy, so I will do my best to ensure that I do not do this in the project again.

DavidCo113 avatar Jun 27 '23 16:06 DavidCo113