Page 7 of 9

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 6:16 pm
by RalfR
Interesting, as 3D-Slime is a supercharged SuperBASIC program (as far as I know). Would be interesting to see, how the author has managed a protection scheme.

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 6:22 pm
by t0nyt
RalfR wrote: Mon Feb 10, 2025 6:16 pm Interesting, as 3D-Slime is a supercharged SuperBASIC program (as far as I know). Would be interesting to see, how the author has managed a protection scheme.
It’s made up of several files and I suspect only the main game file is supercharged. This snippet isn’t from the main game file. I don’t even know for sure it relates to the protection but it is a starting point as it seems odd

I’m not looking to break the protection, just to understand how to repair my original cart

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 6:44 pm
by t0nyt
Actually I guess the simplest way to see what it reads will be to assemble the code snippet and look at what’s read in

Will give it a go tomorrow

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 7:08 pm
by tofro
Your code simply reads the first 80bytes of the mdv1_ directory (what's a bit weird is that it's reading 1 1/3 file headers from there, so only the first 64 bytes are really useful.)

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 7:16 pm
by t0nyt
tofro wrote: Mon Feb 10, 2025 7:08 pm Your code simply reads the first 80bytes of the mdv1_ directory (what's a bit weird is that it's reading 1 1/3 file headers from there, so only the first 64 bytes are really useful.)
I wondered if it was reading the 16 bytes sector header then the 64 bytes of the first entry to make 80 (so 16+64 rather than 64+16)

I haven’t worked out what it does with whatever it reads yet, I guess that’s my next bit of disassembly to look at then

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 8:08 pm
by tofro
t0nyt wrote: Mon Feb 10, 2025 7:16 pm
tofro wrote: Mon Feb 10, 2025 7:08 pm Your code simply reads the first 80bytes of the mdv1_ directory (what's a bit weird is that it's reading 1 1/3 file headers from there, so only the first 64 bytes are really useful.)
I wondered if it was reading the 16 bytes sector header then the 64 bytes of the first entry to make 80 (so 16+64 rather than 64+16)

I haven’t worked out what it does with whatever it reads yet, I guess that’s my next bit of disassembly to look at then
Nope. FS.LOAD doesn't touch any low-level structures like headers. What you get ist the contents of the file or directory.

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 8:16 pm
by t0nyt
Ok, many thanks tofro. Much appreciated

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 9:17 pm
by XorA
3D slime copy protection is based purely on the funny characters in filename!

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 9:39 pm
by RalfR
XorA wrote: Mon Feb 10, 2025 9:17 pm3D slime copy protection is based purely on the funny characters in filename!
Not the cartridge from Chr$: https://qxl.win/3d_slime.htm

But there seem to be a file with no name, which was/is possible with Microdrives. Save "mdv1_" works. Even if it is a long SB file. Was used earlier in the early version of TT's Software Production Kit (see Wiki) (later changed to "mdv1_ ").

Re: Stumped on a Cartridge Repair

Posted: Mon Feb 10, 2025 9:47 pm
by XorA

Code: Select all

❯ ls -l 3dslime/
.rw-r--r-- 25k graeme 10 Feb 21:46  '-noASCII-!Game_bIN A!Maps_BIN'
.rw-r--r-- 640 graeme 10 Feb 21:46  -noASCII-A
.rw-r--r-- 26k graeme 10 Feb 21:46  3Dslime_pic
.rw-r--r-- 380 graeme 10 Feb 21:46  boot
.rw-r--r-- 22k graeme 10 Feb 21:46  Game_EXE
.rw-r--r-- 20k graeme 10 Feb 21:46  Game_red
.rw-r--r-- 112 graeme 10 Feb 21:46  h_s__dl1
.rw-r--r-- 46k graeme 10 Feb 21:46  QLG1_OBJ_V24
The filenames on the copy I have! (encoded for Q-Emulator)