Old version downloads

The original, free Ace of Spades game powered by the Voxlap engine. Known as “Classic,” 0.75, 0.76, and all 0.x versions. Created by Ben Aksoy.
20 posts Page 2 of 2 First unread post
Sonarpulse
Coder
Coder
Posts: 443
Joined: Thu Dec 13, 2012 7:18 pm


Is there anything objconv can do that (MinGW's) objcopy can't? Honest question.
GreaseMonkey
Coder
Coder
Posts: 733
Joined: Tue Oct 30, 2012 11:07 pm


Sonarpulse wrote:
Is there anything objconv can do that (MinGW's) objcopy can't? Honest question.
It can output to near-nasm/yasm format with labels.
rakiru wrote:
How did you untether them, btw? And why do they need the proxy app to connect?
I disassembled the code with objconv, searched for strings, search for what referred to which label, and used an opcode table to change conditional jumps to either JMP or a few NOPs using a hex editor.

I don't know why they need the proxy app. I suspect it has something to do with only using one network device or subnet or whatnot.
rakiru
Coder
Coder
Posts: 1349
Joined: Sun Nov 11, 2012 12:26 pm


GreaseMonkey wrote:
Sonarpulse wrote:
Is there anything objconv can do that (MinGW's) objcopy can't? Honest question.
It can output to near-nasm/yasm format with labels.
rakiru wrote:
How did you untether them, btw? And why do they need the proxy app to connect?
I disassembled the code with objconv, searched for strings, search for what referred to which label, and used an opcode table to change conditional jumps to either JMP or a few NOPs using a hex editor.

I don't know why they need the proxy app. I suspect it has something to do with only using one network device or subnet or whatnot.
I meant more specifically what did you have to change? I don't know exactly why/how they're tethered, so I don't know what needs changed/removed. What you said above is nothing new to me, and shouldn't be to anyone who could untether the other ones.
GreaseMonkey
Coder
Coder
Posts: 733
Joined: Tue Oct 30, 2012 11:07 pm


rakiru wrote:
I meant more specifically what did you have to change? I don't know exactly why/how they're tethered, so I don't know what needs changed/removed. What you said above is nothing new to me, and shouldn't be to anyone who could untether the other ones.
These are from the 0.60 server which does not need to be untethered (anything 0.54 onwards is fine, this version doesn't refer to language files unlike 0.75 so it should be easier), but they might prove useful:

"GET"
Code: Select all
?_5920:                                          ; byte
        db 47H, 45H, 54H, 20H, 2FH, 6EH, 30H, 39H       ; 00427AE0 _ GET /n09
        db 32H, 33H, 30H, 39H, 34H, 35H, 2EH, 61H       ; 00427AE8 _ 230945.a
        db 73H, 70H, 20H, 48H, 54H, 54H, 50H, 2FH       ; 00427AF0 _ sp HTTP/
        db 31H, 2EH, 30H, 0DH, 0AH, 41H, 63H, 63H       ; 00427AF8 _ 1.0..Acc
        db 65H, 70H, 74H, 3AH, 20H, 2AH, 2FH, 2AH       ; 00427B00 _ ept: */*
        db 0DH, 0AH, 48H, 6FH, 73H, 74H, 3AH, 20H       ; 00427B08 _ ..Host:
        db 61H, 75H, 74H, 6FH, 6DH, 61H, 74H, 69H       ; 00427B10 _ automati
        db 6FH, 6EH, 2EH, 77H, 68H, 61H, 74H, 69H       ; 00427B18 _ on.whati
        db 73H, 6DH, 79H, 69H, 70H, 2EH, 63H, 6FH       ; 00427B20 _ smyip.co
        db 6DH, 0DH, 0AH, 55H, 73H, 65H, 72H, 2DH       ; 00427B28 _ m..User-
        db 41H, 67H, 65H, 6EH, 74H, 3AH, 20H, 4DH       ; 00427B30 _ Agent: M
        db 53H, 49H, 45H, 0DH, 0AH, 0DH, 0AH, 00H       ; 00427B38 _ SIE.....
"ace-"
Code: Select all
?_5877:                                          ; byte
        db 61H, 63H, 65H, 2DH, 73H, 70H, 61H, 64H       ; 00427640 _ ace-spad
        db 65H, 73H, 2EH, 63H, 6FH, 6DH, 00H, 00H       ; 00427648 _ es.com..
some other goodies, which are what we will actually use:
Code: Select all
?_5878:                                          ; byte
        db 45H, 72H, 72H, 6FH, 72H, 20H, 63H, 6FH       ; 00427650 _ Error co
        db 6EH, 6EH, 65H, 63H, 74H, 69H, 6EH, 67H       ; 00427658 _ nnecting
        db 20H, 74H, 6FH, 20H, 6DH, 61H, 73H, 74H       ; 00427660 _  to mast
        db 65H, 72H, 20H, 73H, 65H, 72H, 76H, 65H       ; 00427668 _ er serve
        db 72H, 2EH, 2EH, 2EH, 0AH, 00H, 00H, 00H       ; 00427670 _ r.......

?_5879:                                          ; byte
        db 53H, 65H, 6EH, 64H, 69H, 6EH, 67H, 20H       ; 00427678 _ Sending
        db 73H, 65H, 72H, 76H, 65H, 72H, 20H, 69H       ; 00427680 _ server i
        db 6EH, 66H, 6FH, 0AH, 00H, 00H, 00H, 00H       ; 00427688 _ nfo.....

?_5880:                                          ; byte
        db 45H, 72H, 72H, 6FH, 72H, 20H, 73H, 65H       ; 00427690 _ Error se
        db 6EH, 64H, 69H, 6EH, 67H, 20H, 73H, 65H       ; 00427698 _ nding se
        db 72H, 76H, 65H, 72H, 20H, 69H, 6EH, 66H       ; 004276A0 _ rver inf
        db 6FH, 21H, 0AH, 00H                      ; 004276A8 _ o!..

?_5881:                                          ; byte
        db 53H, 65H, 6EH, 74H, 21H, 0AH, 00H, 00H       ; 004276AC _ Sent!...
        db 00H, 00H, 00H, 00H                      ; 004276B4 _ ....

?_5882:                                          ; byte
        db 44H, 6FH, 6EH, 65H, 21H, 0AH, 49H, 66H       ; 004276B8 _ Done!.If
        db 20H, 79H, 6FH, 75H, 27H, 72H, 65H, 20H       ; 004276C0 _  you're
        db 64H, 69H, 73H, 63H, 6FH, 6EH, 6EH, 65H       ; 004276C8 _ disconne
        db 63H, 74H, 65H, 64H, 20H, 66H, 72H, 6FH       ; 004276D0 _ cted fro
        db 6DH, 20H, 74H, 68H, 65H, 20H, 6DH, 61H       ; 004276D8 _ m the ma
        db 73H, 74H, 65H, 72H, 20H, 73H, 65H, 72H       ; 004276E0 _ ster ser
        db 76H, 65H, 72H, 2CH, 20H, 63H, 68H, 65H       ; 004276E8 _ ver, che
        db 63H, 6BH, 20H, 70H, 6FH, 72H, 74H, 20H       ; 004276F0 _ ck port
        db 73H, 65H, 74H, 74H, 69H, 6EH, 67H, 73H       ; 004276F8 _ settings
        db 2CH, 20H, 64H, 69H, 73H, 61H, 62H, 6CH       ; 00427700 _ , disabl
        db 65H, 20H, 65H, 78H, 74H, 72H, 61H, 20H       ; 00427708 _ e extra
        db 6EH, 65H, 74H, 77H, 6FH, 72H, 6BH, 20H       ; 00427710 _ network
        db 64H, 65H, 76H, 69H, 63H, 65H, 73H, 2CH       ; 00427718 _ devices,
        db 20H, 61H, 6EH, 64H, 20H, 63H, 68H, 65H       ; 00427720 _  and che
        db 63H, 6BH, 20H, 66H, 6FH, 72H, 20H, 67H       ; 00427728 _ ck for g
        db 61H, 6DH, 65H, 20H, 75H, 70H, 64H, 61H       ; 00427730 _ ame upda
        db 74H, 65H, 73H, 0AH, 00H, 00H, 00H, 00H       ; 00427738 _ tes.....
?_5878 ("Error connecting to master server") is referred to here:
Code: Select all
?_4300: push    ?_5876                            ; 0041B338 _ 68, 0042761C(d)
        call    ?_0266                            ; 0041B33D _ E8, FFFE709C
        add     esp, 4                            ; 0041B342 _ 83. C4, 04
        call    ?_3759                            ; 0041B345 _ E8, FFFFADA6
        test    eax, eax                                ; 0041B34A _ 85. C0
        jz      ?_4301                            ; 0041B34C _ 74, 07
        push    ?_5878                            ; 0041B34E _ 68, 00427650(d)
        jmp     ?_4305                            ; 0041B353 _ EB, 76
?_5880 ("Error sending server info!") is referred to here:
Code: Select all
?_4302: mov     cl, byte [eax]                    ; 0041B370 _ 8A. 08
        inc     eax                                  ; 0041B372 _ 40
        test    cl, cl                            ; 0041B373 _ 84. C9
        jnz     ?_4302                            ; 0041B375 _ 75, F9
        sub     eax, edx                                ; 0041B377 _ 2B. C2
        add     eax, 2                            ; 0041B379 _ 83. C0, 02
        push    1                                      ; 0041B37C _ 6A, 01
        push    eax                                  ; 0041B37E _ 50
        mov     ebx, ?_6593                          ; 0041B37F _ BB, 0195F440(d)
        call    ?_4939                            ; 0041B384 _ E8, 00004977
        mov     ecx, dword [?_6583]                  ; 0041B389 _ 8B. 0D, 0195F3D0(d)
        push    ecx                                  ; 0041B38F _ 51
        mov     ebx, eax                                ; 0041B390 _ 8B. D8
        call    ?_4823                            ; 0041B392 _ E8, 00003DC9
        add     esp, 12                          ; 0041B397 _ 83. C4, 0C
        test    eax, eax                                ; 0041B39A _ 85. C0
        jz      ?_4304                            ; 0041B39C _ 74, 28
        push    ?_5880                            ; 0041B39E _ 68, 00427690(d)
        call    ?_0266                            ; 0041B3A3 _ E8, FFFE7036
        add     esp, 4                            ; 0041B3A8 _ 83. C4, 04
        push    ?_5867                            ; 0041B3AB _ 68, 00427544(d)
        call    ?_0258                            ; 0041B3B0 _ E8, FFFE6F4C
        add     esp, 4                            ; 0041B3B5 _ 83. C4, 04
?_4303: or      eax, 0FFFFFFFFH                  ; 0041B3B8 _ 83. C8, FF
        pop     edi                                  ; 0041B3BB _ 5F
        pop     esi                                  ; 0041B3BC _ 5E
        pop     ebp                                  ; 0041B3BD _ 5D
        pop     ebx                                  ; 0041B3BE _ 5B
        add     esp, 468                                ; 0041B3BF _ 81. C4, 000001D4
        ret                                          ; 0041B3C5 _ C3
Finally, if you really want to change the port, search for 32887. It will be a "mov e__, 32887" opcode.
You will also need to modify the client in this case.

For certain really old versions (such as 0.35), you will need to look at + modify the client to fix up the IP check.

Let me know if there's anything you get stuck on.
rakiru
Coder
Coder
Posts: 1349
Joined: Sun Nov 11, 2012 12:26 pm


Thank you for the detailed post. ^-^
20 posts Page 2 of 2 First unread post
Return to “Ace of Spades 0.x Discussion”

Who is online

Users browsing this forum: No registered users and 16 guests