Here comes the weekly I-Mode update: I've forwarded the HTTP messages from no$psx to real internet, and that seems to be working & stable now.
I-Mode is using slightly nonstandard "GET http:domain/path" messages that need to be parsed to standard HTTP messages with "GET /path" and "Host: domain". The old game servers & browser start page do no longer exist, so it requires some extra parsing to redirect the "domain/path" strings to other sites, that's already working, but before releasing the stuff, I'll need to store the strings somewhere in .ini file, so everyone could create their own redirects (and perhaps create their own Hamster Club-i server, in case anybody should be interested in doing such things).
Anyways, it'll be your chance to bring PSX online gaming to the world... or online whatever... the Hamster Club might be some long lost social media platform?
As proof of concept, I've created a new Ranking.cgi file for Hamster Club-i on http://problemkaputt.de/hamster-ranking.cgi
which works, but it's static only. In reality, the server should update the file with new highscores (and there should be actually two different Ranking.cgi files; selected via the http POST parameters).
I've also made a new browser start page to see how the NetFront browser looks like... It is not very good, and way behind win9x standards. Screen resolution is 296x176 pixels, there seems to be no mouse or keyboard support (and only very crude joypad support, without fast "page up/down" scrolling features), HTM, TXT, GIF are supported (but all restricted to max 10240 bytes per file), HTM does include TABLE support (so that's a bit better than compact cHTML), JPG isn't supported at all, and transfers are quite slow (the TLP protocol did reportedly use 9600bit/s, and the PSX browser transfers are almost looking slower than that, although I didn't even emulate any network speed limitations in no$psx).
And behind the scenes, I've been struggling with the binary TLP messages/headers all day long. Games like Hamster Club-i are quite easy (the transfer flow is Send, Reply, Send, Reply, etc). But it took a lot of days to get the NetFront browser working, it can send 2-3 messages (without waiting for replies), including conflicting messages like requesting a new packet while also requesting a disconnect, at the same time when the server is also sending a disconnect request...
One problem was correct packet numbering in such situations, and another nasty problem were randomly occuring "error" messages, which did often occur right after
those conflicting disconnect requests... and which nonetheless turned out to be unrelated
One of the "errors" is a "timeout" counted from begin
of connection (but it's a harmless "timeout", the transfer continous just fine when ignoring it). The other error repeats thrice and then re-triggers gw_connect after some delay, there is probably a way to prevent or acknowledge that error, but apart from the small extra delay, the transfer continous okay after the new gw_connect.
Alongsides, there are frequent auth_ping and gw_ping messages that must be acknowledged to keep the connection alive... and that keeping-it-alive thing seems to be stable now (after many attempts where the browser refused to transfer any further packets after viewing 2-3 small htm pages).
Btw. are there still any classic http-compatible search engines around? Preferably with simple html and less than 10Kbyte per page.
(duckduckgo is https only, google did partially work, although I couldn't actually get it to display search results).