Closed slx7R4GDZM closed 9 years ago
Just noticed that I forgot to update the sine table addresses after moving some text around. The correct addresses are:
0FBB: 00 03 06 09 0c 10 13 16 0FC3: 19 1c 1f 22 25 28 2b 2e 0FCB: 31 33 36 39 3c 3f 41 44 0FD3: 47 49 4c 4e 51 53 55 58 0FDB: 5a 5c 5e 60 62 64 66 68 0FE3: 6a 6b 6d 6f 70 71 73 74 0FEB: 75 76 78 79 7a 7a 7b 7c 0FF3: 7d 7d 7e 7e 7e 7f 7f 7f 0FFB: 7f
Very awesome! I updated and deployed the changes. Eventually I'll run the vector-disassembler on the messages themselves.
Thanks again!
http://computerarcheology.com/Arcade/Asteroids/VectorROM.html#Messages
On Wed, Jul 8, 2015 at 6:49 AM, slx7R4GDZM notifications@github.com wrote:
Just noticed that I forgot to update the sine table addresses after moving some text around. The correct addresses are:
0FBB: 00 03 06 09 0c 10 13 16 0FC3: 19 1c 1f 22 25 28 2b 2e 0FCB: 31 33 36 39 3c 3f 41 44 0FD3: 47 49 4c 4e 51 53 55 58 0FDB: 5a 5c 5e 60 62 64 66 68 0FE3: 6a 6b 6d 6f 70 71 73 74 0FEB: 75 76 78 79 7a 7a 7b 7c 0FF3: 7d 7d 7e 7e 7e 7f 7f 7f 0FFB: 7f
— Reply to this email directly or view it on GitHub https://github.com/topherCantrell/computerarcheology/pull/2#issuecomment-119548661 .
Can you explain how these bytes become the string of letters?
; HIGH SCORES 0F2B: 63 56 60 6e 3c ec 4d c0 ; PLAYER 0F33: a4 0a ea 6c 08 00
I was thinking 5-bits per letter, but that isn't working out.
On Wed, Jul 8, 2015 at 7:32 AM, Christopher Cantrell < tophercantrell@gmail.com> wrote:
Very awesome! I updated and deployed the changes. Eventually I'll run the vector-disassembler on the messages themselves.
Thanks again!
http://computerarcheology.com/Arcade/Asteroids/VectorROM.html#Messages
On Wed, Jul 8, 2015 at 6:49 AM, slx7R4GDZM notifications@github.com wrote:
Just noticed that I forgot to update the sine table addresses after moving some text around. The correct addresses are:
0FBB: 00 03 06 09 0c 10 13 16 0FC3: 19 1c 1f 22 25 28 2b 2e 0FCB: 31 33 36 39 3c 3f 41 44 0FD3: 47 49 4c 4e 51 53 55 58 0FDB: 5a 5c 5e 60 62 64 66 68 0FE3: 6a 6b 6d 6f 70 71 73 74 0FEB: 75 76 78 79 7a 7a 7b 7c 0FF3: 7d 7d 7e 7e 7e 7f 7f 7f 0FFB: 7f
— Reply to this email directly or view it on GitHub https://github.com/topherCantrell/computerarcheology/pull/2#issuecomment-119548661 .
Honestly I'm not entirely sure, I never quite figured out how they worked but I figured out what they were. It seems to be 5-bits per character grouped in three with the 16th bit only ever being turned on to indicate the end of a sequence without needing to use a bunch of 0s in the next byte. Although, if the character's value is above 31 then the 6th bit gets stored in a byte further down or something. tl;dr idk but maybe you can figure it out :p
These challenges are the reason I do computer archeology!
I figured it out and updated the site. Here are the comments:
;; Messages are packed with 3 characters in 2 bytes (3 5-bit characters). ;; The upper 15 bits are used. If the last bit is set then the message terminates. ;; If the last bit is clear then the next two bytes are parsed UNLESS the parser ;; finds a 00000 character. That pattern terminates the message too. ;; ;; Here is the character map for a 5 bit character (00-1F): ;; "@_012ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;; Again ... a 0 ("@") terminates the message
; HIGH SCORES ; 01100_01101_01011_0 01100_00001_10111_0 00111_10011_10110_0 01001_10111_000000 ; H I G H S C O R E S @ 0F2B: 63 56 60 6e 3c ec 4d c0
; PLAYER_ ; 10100_10000_00101_0 11101_01001_10110_0 00001_00000_000000 ; P L A Y E R @ @ 0F33: a4 0a ea 6c 08 00
; YOUR SCORE IS ONE OF THE TEN BEST ; 11101_10011_11001_0 10110_00001_10111_0 00111_10011_10110_0 01001_00001_01101_0 10111_00001_10011_0 10010_01001_00001_0 10011_01010_00001_0 11000_01100_01001_0 00001_11000_01001_0 10010_00001_00110_0 01001_10111_110001 ; Y O U R S C O R E I S O N E O F T H E T E N B E S T @ 0F39: ec f2 b0 6e 3c ec 48 5a b8 66 92 42 9a 82 c3 12 0e 12 90 4c 4d f1
; PEASE ENTER YOUR INITIALS ; 10100_10000_01001_0 00101_10111_01001_0 00001_01001_10010_0 11000_01001_10110_0 00001_11101_10011_0 11001_10110_00001_0 01101_10010_01101_0 11000_01101_00101_0 10000_10111_000000 ; P L E A S E E N T E R Y O U R I N I T I A L S @ 0F4F: a4 12 2d d2 0a 64 c2 6c 0f 66 cd 82 6c 9a c3 4a 85 c0
; PUSH ROTATE TO SELECT LETTER ; 10100_11001_10111_0 01100_00001_10110_0 10011_11000_00101_0 11000_01001_00001_0 11000_10011_00001_0 10111_01001_10000_0 01001_00111_11000_0 00001_10000_01001_0 11000_11000_01001_0 10110_00000_000000 ; P U S H R O T A T E T O S E L E C T _ L E T T E R @ @ 0F61: a6 6e 60 6c 9e 0a c2 42 c4 c2 ba 60 49 f0 0c 12 c6 12 b0 00
; PUSH HYPERSPACE WHEN LETTER IS CORRECT ; 10100_11001_10111_0 01100_00001_01100_0 11101_10100_01001_0 10110_10111_10100_0 00101_00111_01001_0 00001_11011_01100_0 01001_10010_00001_0 10000_01001_11000_0 11000_01001_10110_0 00001_01101_10111_0 00001_00111_10011_0 10110_10110_01001_0 00111_11000_000000 ; P U S H H Y P E R S P A C E W H E N L E T T E R I S C O R R E C T @ 0F75: a6 6e 60 58 ed 12 b5 e8 29 d2 0e d8 4c 82 82 70 c2 6c 0b 6e 09 e6 b5 92 3e 00
; PUSH START ; 10100_11001_10111_0 01100_00001_10111_0 11000_00101_10110_0 11000_00000_00000_0 ; P U S H S T A R T @ @
0F8F: a6 6e 60 6e c1 6c c0 00
; GAME OVER ; 01011_00101_10001_0 01001_00001_10011_0 11010_01001_101101 ; G A M E O V E R @ 0F97: 59 62 48 66 d2 6d
; 1 COIN 2 PLAYS ; 00011_00001_00111_0 10011_01101_10010_0 00001_00100_00001_0 10100_10000_00101_0 11101_10111_000000 ; 1 C O I N 2 P L A Y S @ 0F9D: 18 4e 9b 64 09 02 a4 0a ed c0
; 1 COIN 1 PLAY ; 00011_00001_00111_0 10011_01101_10010_0 00001_00011_00001_0 10100_10000_00101_0 11101_00000_000000 ; 1 C O I N 1 P L A Y @ @ 0FA7: 18 4e 9b 64 08 c2 a4 0a e8 00
; 2 COINS 1 PLAY ; 00100_00001_00111_0 10011_01101_10010_0 10111_00001_00011_0 00001_10100_10000_0 00101_11101_000000 ; 2 C O I N S 1 P L A Y @ 0FB1: 20 4e 9b 64 b8 46 0d 20 2f 40
On Wed, Jul 8, 2015 at 5:33 PM, slx7R4GDZM notifications@github.com wrote:
Honestly I'm not entirely sure, I never quite figured out how they worked but I figured out what they were. It seems to be 5-bits per character grouped in three with the 16th bit only ever being turned on to indicate the end of a sequence without needing to use a bunch of 0s in the next byte. Although, if the character's value is above 31 then the 6th bit gets stored in a byte further down or something. tl;dr idk but maybe you can figure it out :p
— Reply to this email directly or view it on GitHub https://github.com/topherCantrell/computerarcheology/pull/2#issuecomment-119750339 .
You're good. I just figured it out a few minutes ago too but you beat me to it.
So I figured out what the stuff at the end of the Vector ROM was. Turns out it was just some text in a strange format and the thrust table. Also, I fixed the binary name since all the information and addresses on the page pertain to the v1 VROM. As for the credit thing you could just put my name wherever.