FAQ  •  Search  •  Profile  •  Log in to check your private messages  •  Log in
 Kai External Capture View next topic
View previous topic
Post new topicReply to topic
Author Message
TheDaddy



Joined: 30 Jul 2006
Posts: 0

PostPosted: Sun Jan 30, 2005 1:35 pm Reply with quoteBack to top

Hi,

This is kinds FAO Sharpener - or perhaps biolizard.. The new version of Kai which everyone now has supports external capture - which means we can easily integrate GCOT or any other controlsim style stuff in there.

Would anyone wanna MSN me (flat235@hotmail.com) - so we can have a go with this?

TD
View user's profileSend private message
sharpener
Kai Beginner
Kai Beginner


Joined: 17 Jan 2005
Posts: 49

PostPosted: Mon Jan 31, 2005 2:38 am Reply with quoteBack to top

ControlSim is a peer-to-peer app that sends data directly using 4 IP addresses. However, I have it written in such a way that it can be used with a server or tunnel app. Hopefully I'll be able get it all working soon and we can test it with Kai.
View user's profileSend private message
biolizard89
Kai Regular
Kai Regular


Joined: 14 Aug 2004
Posts: 114
Location: USA - Oklahoma

PostPosted: Mon Jan 31, 2005 7:51 am Reply with quoteBack to top

TheDaddy @ Sun Jan 30, 2005 7:35 am wrote:
Hi,

This is kinds FAO Sharpener - or perhaps biolizard.. The new version of Kai which everyone now has supports external capture - which means we can easily integrate GCOT or any other controlsim style stuff in there.

Would anyone wanna MSN me (flat235@hotmail.com) - so we can have a go with this?

TD

I've been trying to modify GCOT to use a different port and not prompt the user for stuff. Unfortunately, I've discovered that MinGW doesn't like GCOT's source. Sappharad used Visual C++, but I'm using Windows NT, and the Visual C++ toolkit doesn't run on NT. So as soon as I get access to an XP computer, I'll be able to start messing with it.
View user's profileSend private messageVisit poster's websiteAIM AddressYahoo Messenger
TheDaddy



Joined: 30 Jul 2006
Posts: 0

PostPosted: Mon Jan 31, 2005 9:23 am Reply with quoteBack to top

Well, I read a description of Controlsim on another board - and someone described it like this:

<Cube UDP Socket> ---- <PC App UDP><PC App TCP> ---- <PC App TCP><PC App UDP> ---- <Cube UDP>

If this is the case, all we would need to do is modify the cube to send its data out to 255.255.255.255:34527 - bound locally to any (0) socket. It would then receive data back on the same socket.

Lemme know if I've got the wrong idea - will be pleased to modify further.

TD
View user's profileSend private message
biolizard89
Kai Regular
Kai Regular


Joined: 14 Aug 2004
Posts: 114
Location: USA - Oklahoma

PostPosted: Mon Jan 31, 2005 4:03 pm Reply with quoteBack to top

biolizard89 @ Mon Jan 31, 2005 1:51 am wrote:
TheDaddy @ Sun Jan 30, 2005 7:35 am wrote:
Hi,

This is kinds FAO Sharpener - or perhaps biolizard.. The new version of Kai which everyone now has supports external capture - which means we can easily integrate GCOT or any other controlsim style stuff in there.

Would anyone wanna MSN me (flat235@hotmail.com) - so we can have a go with this?

TD

I've been trying to modify GCOT to use a different port and not prompt the user for stuff. Unfortunately, I've discovered that MinGW doesn't like GCOT's source. Sappharad used Visual C++, but I'm using Windows NT, and the Visual C++ toolkit doesn't run on NT. So as soon as I get access to an XP computer, I'll be able to start messing with it.

Okay, since I'm not going to be able to try to compile it for a while, I've uploaded the modified source. It should always automatically go into server mode, and wait for a connection on the port you specified in the ControlSim thread. When it is disconnected, it should exit. That's all the modifications I made, and since I know very little C++ (I only know C), there could easily be some bugs in the modifications I made. But whatever, if anyone wants to try to compile it, feel free. Sappharad says he used Visual C++ 6. My attempts to compile it with MinGW and Borland C++ Compiler didn't work. By the way, only GCNserver.cpp is modified, the rest is identical to the original GCOT.

http://www.asofok.org/jeremy/gcot/

EDIT: I just tried it with Visual C++ .NET Toolkit (the free version) on my XP computer and it still wouldn't compile because it needs winsock2.h. Looks like someone with the commercial version of VC++ will need to compile it.
View user's profileSend private messageVisit poster's websiteAIM AddressYahoo Messenger
sharpener
Kai Beginner
Kai Beginner


Joined: 17 Jan 2005
Posts: 49

PostPosted: Tue Feb 01, 2005 4:37 am Reply with quoteBack to top

TheDaddy @ Mon Jan 31, 2005 9:23 am wrote:
Well, I read a description of Controlsim on another board - and someone described it like this:

<Cube UDP Socket> ---- <PC App UDP><PC App TCP> ---- <PC App TCP><PC App UDP> ---- <Cube UDP>

If this is the case, all we would need to do is modify the cube to send its data out to 255.255.255.255:34527 - bound locally to any (0) socket. It would then receive data back on the same socket.

Lemme know if I've got the wrong idea - will be pleased to modify further.

TD


Well, almost. Controlsim uses UDP port 22064 and requires a static IP address (currently) for each client, so you would have to set any unused controller address to the PC's address. Other than that, it should work perfectly fine.

( P.S. port 22064 was just an arbitrary choice of mine - it can be changed if needed )


biolizard89: Use Dev-C++. It compiles fine for me with that (I might have done a bit of tweaking, though - don't really remember)
View user's profileSend private message
TheDaddy



Joined: 30 Jul 2006
Posts: 0

PostPosted: Tue Feb 01, 2005 4:24 pm Reply with quoteBack to top

Im not sure what you mean by 4 IP addresses?

Sorry - I'm just trying to get my head round this.. surely the cube sends UDP data out, and needs to get UDP data back in - on one socket?

Is it 4 addys because it supports 4 players?? Someone told me it wsa only 2? Very Happy

Sorry I'm a n00b here - but if the code running on the GCN is sending UDP packets out, and needing them back in - we can get this working really easily, i think..

TD
View user's profileSend private message
sharpener
Kai Beginner
Kai Beginner


Joined: 17 Jan 2005
Posts: 49

PostPosted: Thu Feb 03, 2005 12:23 am Reply with quoteBack to top

TheDaddy @ Tue Feb 01, 2005 4:24 pm wrote:
Im not sure what you mean by 4 IP addresses?

Sorry - I'm just trying to get my head round this.. surely the cube sends UDP data out, and needs to get UDP data back in - on one socket?

Is it 4 addys because it supports 4 players?? Someone told me it wsa only 2? Very Happy

Sorry I'm a n00b here - but if the code running on the GCN is sending UDP packets out, and needing them back in - we can get this working really easily, i think..

TD


Sure, I'll explain. Here's the deal.

ControlSim is currently made as a peer-to-peer app. Each client enters the IP addresses of the 4 players, one for each controller. (If there are less than 4 players, leave the IP addresses for the missing players set to 0.0.0.0.) Each time the ControlSim hook runs, it compiles the list of values to be written to the remote players' memory, and sends a copy of this data to each IP address. When it receives data, it checks the frame type (Ethernet), the protocol (UDP/IP), and finally, checks the network game ID (so multiple games can be played on the same network - each has its own game ID).

So what I'm saying is, it doesn't check the IP address when it receives data - it only checks the game ID and pad number. So you could have 4 players in a ControlSim game with only 2 addresses entered, if all the other players' data was directed through that address.
View user's profileSend private message
TheDaddy



Joined: 30 Jul 2006
Posts: 0

PostPosted: Thu Feb 03, 2005 9:28 am Reply with quoteBack to top

OK - but where are we putting these IP's in? In a win32 application? Or on the cube?

I'm hoping to get Kai to work without needing another win32 app - ie - it will receive/send data direct to the game cube using UDP...

What you describe sounds pretty neat actually - at present, ext_cap is only activated if there is precisely you and 1 other person in a given arena. We could mod that to "between 2 and 4 people in an arena" .. Then, when your cube spits out one of these packets, kaiEngine simply send it to everyone else in the arena - who send the packet down to their cubes.. From what you say, it sounds like this would work...

We just need the cube to send all it's data to 255.255.255.255:34527 (I'm using broadcast because it avoids needing the user to configure a "Target PC IP" on the cube.

Lemme kinda draw what I visualise:

Cube app hooks data - generates UDP pack, as normal. Sends to 255.255.255.255:34527

kaiEngine receives this packet - as it's listening on 34527... it remembers the source IP and source port - whatever that might be.. lets say 192.168.0.2:1024. It then relays it to everyone else in the current arena.

When a kaiEngine receives this data, it simple sends it back to whatever IP:Port it's got stored for the cube - 192.168.0.2:1024 in this case...

Would this work?

TD
View user's profileSend private message
biolizard89
Kai Regular
Kai Regular


Joined: 14 Aug 2004
Posts: 114
Location: USA - Oklahoma

PostPosted: Thu Feb 03, 2005 3:38 pm Reply with quoteBack to top

On a different subject, this sounds like it would still require input on Kai on the PC for gamefinding, etc. Later on down the road (after other stuff is worked out) would it be possible to have the UI code on the Cube like is currently done with homebrew Xbox dashboards so that no input on the PC is required? Or even better, what about putting all the relevant code on the Cube so that the PC is totally removed from the loop? Obviously that would remove headset support so it would have to be optional, but I think it would make setup easier.
View user's profileSend private messageVisit poster's websiteAIM AddressYahoo Messenger
TheDaddy



Joined: 30 Jul 2006
Posts: 0

PostPosted: Thu Feb 03, 2005 3:41 pm Reply with quoteBack to top

Absolutely.. a kaiUI implementation for the cube shouldn't be massively difficult.. I just got hold of PSO, so I'm gonna start learning about all this stuff..

Would be nice to use your cube as a kaiEngine as well Smile

TD
View user's profileSend private message
biolizard89
Kai Regular
Kai Regular


Joined: 14 Aug 2004
Posts: 114
Location: USA - Oklahoma

PostPosted: Fri Feb 04, 2005 2:31 pm Reply with quoteBack to top

sharpener @ Mon Jan 31, 2005 10:37 pm wrote:
biolizard89: Use Dev-C++. It compiles fine for me with that (I might have done a bit of tweaking, though - don't really remember)

I just tried that, and it didn't work. Sad Here's the compile log:
Code:
Compiler: Default compiler
Executing  g++.exe...
g++.exe "C:\Program Downloads\GC-Online-Homebrew\Sappharad\GC_online_tunnel\GC_online_tunnel\Source\GCNserver.cpp" -o "C:\Program Downloads\GC-Online-Homebrew\Sappharad\GC_online_tunnel\GC_online_tunnel\Source\GCNserver.exe"    -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"
In file included from C:/Dev-Cpp/include/c++/3.3.1/backward/iostream.h:31,
                 from C:/Program Downloads/GC-Online-Homebrew/Sappharad/GC_online_tunnel/GC_online_tunnel/Source/GCNserver.cpp:5:
C:/Dev-Cpp/include/c++/3.3.1/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
C:/Dev-Cpp/include/c++/3.3.1/bits/ios_base.h: In copy constructor `

   std::basic_ios<char, std::char_traits<char> >::basic_ios(const
   std::basic_ios<char, std::char_traits<char> >&)':
C:/Dev-Cpp/include/c++/3.3.1/bits/ios_base.h:668: error: `
   std::ios_base::ios_base(const std::ios_base&)' is private
C:/Program Downloads/GC-Online-Homebrew/Sappharad/GC_online_tunnel/GC_online_tunnel/Source/GCNserver.cpp:200: error: within
   this context
C:/Dev-Cpp/include/c++/3.3.1/streambuf: In copy constructor `
   std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const
   std::basic_filebuf<char, std::char_traits<char> >&)':
C:/Dev-Cpp/include/c++/3.3.1/streambuf:922: error: `
   std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const
   std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits =
   std::char_traits<char>]' is private
C:/Program Downloads/GC-Online-Homebrew/Sappharad/GC_online_tunnel/GC_online_tunnel/Source/GCNserver.cpp:200: error: within

   this context

Execution terminated


Any ideas?

Also, one other question: you say ControlSim uses IP addresses. Would it be possible for it to also accept domain names? I have a no-ip.info domain name, and that's much easier to give people than looking up my IP.
View user's profileSend private messageVisit poster's websiteAIM AddressYahoo Messenger
sharpener
Kai Beginner
Kai Beginner


Joined: 17 Jan 2005
Posts: 49

PostPosted: Fri Feb 04, 2005 9:27 pm Reply with quoteBack to top

biolizard89: That's why I don't use C++'s I/O methods like cin/cout and fin/fout. I prefer printf/scanf and fprintf/fscanf.

Anyway, I've never seen those errors before. Seems like some of your header files are missing or not up to date.

DNS implementation: easy, but you would need to enter your DNS server address anyway.
View user's profileSend private message
biolizard89
Kai Regular
Kai Regular


Joined: 14 Aug 2004
Posts: 114
Location: USA - Oklahoma

PostPosted: Sat Feb 12, 2005 9:05 pm Reply with quoteBack to top

sharpener @ Fri Feb 04, 2005 3:27 pm wrote:
biolizard89: That's why I don't use C++'s I/O methods like cin/cout and fin/fout. I prefer printf/scanf and fprintf/fscanf.

Anyway, I've never seen those errors before. Seems like some of your header files are missing or not up to date.

DNS implementation: easy, but you would need to enter your DNS server address anyway.

Well, I used the newest version of Dev-C++. Any ideas on how to update my header files?

As for requiring the user to enter a DNS server address, is there not a way to use a public server?
View user's profileSend private messageVisit poster's websiteAIM AddressYahoo Messenger
sharpener
Kai Beginner
Kai Beginner


Joined: 17 Jan 2005
Posts: 49

PostPosted: Sun Feb 13, 2005 8:44 pm Reply with quoteBack to top

biolizard89 @ Sat Feb 12, 2005 9:05 pm wrote:
Well, I used the newest version of Dev-C++. Any ideas on how to update my header files?

As for requiring the user to enter a DNS server address, is there not a way to use a public server?


Dev-C++.... don't know what to tell ya. I got it working on my computer without much trouble..... I have Dev-C++ 4.9.9.0.

DNS.... If I were to use a public DNS server, I'd still need it's address.
View user's profileSend private message
Display posts from previous:      
Post new topicReply to topic


 Jump to:   



View next topic
View previous topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2002 phpBB Group :: Theme by Daz :: All times are GMT