I mode cable/software

BIOS, Controllers, Memory Cards, Serial I/O, Parallel I/O, etc.
User avatar
nocash
Verified
PSX Aficionado
PSX Aficionado
Posts: 555
Joined: Nov 12, 2012
Contact:

Post by nocash » September 17th, 2023, 7:25 pm

It works!!!

Doing the data transfer was quite simple, except that I totally couldn't figure out how to terminate the damn data transfer once when all data was transferred. In hindsight, it's that's also quite simple:

Code: Select all

Use message 10h/11h to start the http connection (including sending/receiving the 1st data packet)
Use message 30h to transfer further data packets (if any)
Use message 31h to indicate no further data packets
Use message 20h/21h to terminate the http connection
The confusing part was that the executable has support for transferring data packets in message 20h (and also partial support in message 21h). I guess it's never actually using that feature, but it was kinda misleading:
I've early on decided that message 20h cannot be the termination message because it can transfer data packets.
And so I've unsuccessfully spent more than a week on finding any other ways of terminating the transfer ; /

Anyways, it's working now, and I can send a HTTP response header, and a small HTML file in the response body.

Hamster Club-i wants to download a "CGI" file with some kind of special checksum, so it does dislike my HTML file (but more importantly: it's successfully reaching the function where it is verifying if the downloaded "CGI" file is intact).

The browser's "iMenu" function is throwing something that looks like a japanese error message, prompting to press X button... which looks bad... but after pressing X, it does actually display my downloaded HTML page : )

User avatar
nocash
Verified
PSX Aficionado
PSX Aficionado
Posts: 555
Joined: Nov 12, 2012
Contact:

Post by nocash » September 29th, 2023, 3:25 am

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 to disconnect.

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).

alexfree
Verified
Extreme PSXDEV User
Extreme PSXDEV User
Posts: 221
Joined: Oct 21, 2021
I am a: Programmer, Gamer
PlayStation Model: SCPH-1000
Location: USA
Contact:

Post by alexfree » September 30th, 2023, 2:54 pm

So this exact game that dan had didn't have any bypass codes/patch ever made for it. So for Tonyhax International (the next update will now support non-stealth mod-chips, before only stock consoles were supported) has a bypass implemented that allows this game to be played even though it is protected. Tonyhax International implements these bypasses as GameShark codes and applies them with our own open source gameshark cheat engine written in MIPS assembly (no $ syntax). Here they are, this was co-developed by me and the amazing mottzilla and will be implemented directly into Tonyhax International executable on detecting this bootfile:

i-mode mo Issho: Doko Demo Issho Tsuika Disc: http://redump.org/disc/20321/
Test commands force OK:
D015205C 0062
8015205C 0014
D015205E 1202
8015205E 1800

Fake a VC0 without ReadTOC:

D01698B4 001E
801698B4 0000

Fake Non PAL BIOS:
D01518D4 000A
801518D4 0000
D01518D6 1062
D01518D6 0000

User avatar
Davide_G
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Aug 29, 2014
I am a: Student
PlayStation Model: SCPH-5552
Location: Italy

Post by Davide_G » September 30th, 2023, 8:21 pm

Your work always amazes me! :praise
Do we know which games were compatible with i-mode technology?
Because I haven't found much beyond the game you mentioned and:
  • Motto Trump Shiyouyo! - I-Mode no Grand Prix
  • Imode mo issho - doko demo issyo tsuika disc

alexfree
Verified
Extreme PSXDEV User
Extreme PSXDEV User
Posts: 221
Joined: Oct 21, 2021
I am a: Programmer, Gamer
PlayStation Model: SCPH-1000
Location: USA
Contact:

Post by alexfree » September 30th, 2023, 9:49 pm

Davide_G wrote: September 30th, 2023, 8:21 pm Your work always amazes me! :praise
Do we know which games were compatible with i-mode technology?
Because I haven't found much beyond the game you mentioned and:
  • Motto Trump Shiyouyo! - I-Mode no Grand Prix
  • Imode mo issho - doko demo issyo tsuika disc
Thanks!

I do not have a list, I only found out about this neat hardware a few weeks ago.

I just tested out http://redump.org/disc/32086/ (Motto Trump Shiyou yo! i-Mode de Grand Prix) and it is not protected so I guess not every i-mode compatible game was protected, that's a relief anyways. I'm pretty sure I've found every protected game that triggers on both stock and non-stealth mod-chip consoles at this point.

Semi related is Koneko mo Issho: http://redump.org/disc/6329/ which is a pocket station compatible game that also didn't have any codes/patches done AFAIK so me and MottZilla had to do a bypass:

By Alex Free and MottZilla

801520D8 12020062 je r16,r2,80152264
Fail and trigger screen

801520D8 18000014 jrel 8015212C
Pass test commands

D01520D8 0062
801520D8 0014
D01520DA 1202
801520DA 1800


D016957C 001E
8016957C 0000
code generated via aprip to patch out readtoc and emulate a VC0 CDROM controller

Game locks up on detecting a PAL BIOS, below is the code generated by aprip for the fake PAL Bypass:
D0151952 1062
80151952 1800

So we can nop this out and have it never detect a PAL BIOS

80151950 1062000A je r3,r2,8015197C
locks up on PAL BIOS

80151950 00000000 nop
never detects PAL BIOS


D0151950 000A
80151950 0000
D0151952 1062
80151952 0000

Full Bypass:

Test commands force OK:
D01520D8 0062
801520D8 0014
D01520DA 1202
801520DA 1800

Fake a VC0 without ReadTOC:
D016957C 001E
8016957C 0000

Fake Non PAL BIOS:
D0151950 000A
80151950 0000
D0151952 1062
80151952 0000

User avatar
nocash
Verified
PSX Aficionado
PSX Aficionado
Posts: 555
Joined: Nov 12, 2012
Contact:

Post by nocash » October 1st, 2023, 4:31 am

The list with known I-Mode games was posted here: viewtopic.php?p=22578#p22578

User avatar
Davide_G
Curious PSXDEV User
Curious PSXDEV User
Posts: 25
Joined: Aug 29, 2014
I am a: Student
PlayStation Model: SCPH-5552
Location: Italy

Post by Davide_G » October 1st, 2023, 8:01 pm

nocash wrote: August 19th, 2023, 11:33 am Updated list for known supported software...

Code: Select all

  Sxxx-????? Doko Demo Issyo (PlayStation the Best release only) (Sony) 2000
  Sxxx-????? Doko Demo Issyo Deluxe Pack (Bomber eXpress/Sony) 2001
  SLPS-03266 Hamster Club-I (Jorudan) 2002
  SCPS-10141 iMode mo Issyo: Dokodemo Issho Tsuika Disc (Bomber/Sony) 2001
  SLPS-02717 Keitai Eddy (iPC) (phone cable connects to SIO port) 2000
  SLPS-03121 Komocchi (Victor) 2001
  SLPM-87151 Mobile Tomodachi (Hamster) 2002
  SLPS-03321 Motto Trump Shiyouyo! i-Mode de Grand Prix (Pure Sound) 2002
  SLPM-86837 One Piece Mansion (Capcom) (japanese version only) 2001
  PBPX-95013 Keitai Henshuu (CompactNetFront browser) (in SCPH-10180K kit) 2001
Sorry, I hadn't seen your post. On PSXDataCenter, it mentions the two games that still don't have a production code. On the back of the game cover in 'The Best' collection, it doesn't show compatibility with the I-mode cable. Do you think another version has been released?

Code: Select all

SCPS-91212 DOKO DEMO ISSYO (PLAYSTATION THE BEST)
SCPS-10142 - SCPS-10143 DOKO DEMO ISSYO DELUXE PACK (2 DISCS)

User avatar
nocash
Verified
PSX Aficionado
PSX Aficionado
Posts: 555
Joined: Nov 12, 2012
Contact:

Post by nocash » October 2nd, 2023, 8:38 am

Good that you mention those titles without game codes. I don't remember what made me think that there was I-Mode support in that Playstation the Best title, I guess that's been wrong.

Also looking at PSXDataCenter, there are these three titles, all with same release date, and with variations of the same cover:

Code: Select all

SCPS-10141             IMODE MO ISSHO - DOKO DEMO ISSYO TSUIKA DISC [WITH I-MODE CABLE]
SCPS-10144             IMODE MO ISSHO - DOKO DEMO ISSYO TSUIKA DISC
SCPS-10142/SCPS-10143  DOKO DEMO ISSYO DELUXE PACK  -  [ 2 DISCS ]
I guess that's all the same game in three variants: Bundled with cable, without cable, or bundled with another older game (supposedly without I-Mode support in that older game... unless they've upgraded it somehow).

The disc I have contains filename SCPS_101.41 which would refer to SCPS-10141... I am wondering if the other two titles contain the same filename, or if they have actually produced different discs, depending on whether the game was bundled with this or that extra stuff.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests