News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devlin

Le Secret Du Tombeau (translation project)

Started by Devlin, 00:03, 25 November 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nich

Quote from: cwpab on 18:39, 01 December 24And the gameplay style seems more or less unique... But it only got a 6.5 from French magazines at the time, and CPC Game Reviews gives it a 6.

BUT users in CPC Power give it very high scores... What's going on? Is it a very good game or only a decent one?
I wrote my review of Le Secret du Tombeau in May 2021. I played the game again when this discussion was started, and I stand by what I wrote in my review.

Devlin

#26
The translation is done, but now the pain begins, getting it working on real hardware :)

which is to say, it doesn't, unless it's loaded off an actual disc.

Which isn't exactly ideal considering a lot of folks have some kind of mass storage solution(M4, USIfAC2 etc), and would likely be loading off a DSK image, which also doesn't work.

I can't test if it plays nice with a gotek as I don't have one, but I assume it does.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

cwpab

Yeah, any translation project for any decent game is really helpful.

Back to the game, I find the simple graphics strangely attractive and mysterious. The pixel art seems to create a perfect atmosphere of being in an ancient macro-tomb system. The need to understand the messages you mention is also intriguing. Will have to play it.

Devlin

Once all the loading bugs are ironed out, so at least loading via M4/U2 disk "emulation" and at most directly off the USB stick of my U2, I'll deem it ready for release.

I want to open up the possibilities of this being playable on just about any CPC with some form of mass storage/disk emu. Wrangling 64k as a possibility is pretty much in Jean-Marie's court because I wouldn't (and don't know how) where to start.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

I've made a small change to the Loader file (SDT.BIN), so that it can now be run from Drive B:
It also skips the protection test entirely, so it should load a tad faster.

Devlin

Excellent! I'm running into one problem with it, though.

When it gets to the end of the loading of the main game (and beeps to tell you to press something) it gets stuck there and will not continue - It's definitely trying *something* but I'm not entirely certain what because I can only cause the issue on the real hardware.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

Do you run it from Drive B or A ? Was the previous version working correctly ?
It's gonna be tough to find out, if the problem cannot be reproduced on emulators, as I have no real hardware!

Devlin

#32
Quote from: Jean-Marie on 01:49, 02 December 24Do you run it from Drive B or A ? Was the previous version working correctly ?
It's gonna be tough to find out, if the problem cannot be reproduced on emulators, as I have no real hardware!


Here's all the tests I did (and then re-did about 5 mins ago to confirm no gremlins were involved)

On my 6128:
stock, real disc A: - works
usifac2, mounted disc image - works
u2, direct USB loading - failed

On my 464: (I haven't got a DDI-1 or external disc drive)
u2 & ram exp, mounted disc image - failed
u2 & ram, direct usb loading - failed

It might be worth trying a different emulator, perhaps ACE-DL which has some pretty comprehensive debug tools, including one for fdc debugging? Might help nail down what might be holding it up without needing real hardware to hand.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

Yeah, I just found a bug on emulators when launching it from B drive : the demo mode runs correctly, but then it tries to load the game files from drive A.
It might be because the AMSDOS data area is tampered. I'll have a look at it.
There's something mysterious with this game. It uses the well-known firmware functions to open/read the game files, and it's working correctly. But it shouldn't, since the AMSDOS data area around A700h is overwritten with some text data 🤔Really weird.

arnoldemu

Are you editing a hacked/cracked version?

This is what a crack will often do: 

- copy amsdos data area &a700-&c000 to screen, copy &0000-&0040 to screen.
- re-initialise firmware
- poke drive to a700 
- load file(s)
- disable firmware interrupts.
- copy data back to a700-c000 and 0000-0040.
continue with game. 

In this way a crack can load files/levels etc from amsdos.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Jean-Marie

No, I've worked from the original disk version. I thought it would have moved the Data area before & after the calls, indeed, but I had a quick look yesterday, and it doesn't seem to be the case. Also the content of BE7Dh (address of AMSDOS reserved area) still remains A700h.
I have to investigate further...



Devlin

I noticed one thing watching a longplay of the original disk version - the game loads off the disk when accessing certain texts.

I think it's related to how the data is stored on the original disk, as text boxes are grouped in sets of 5 then have a 12-byte filler block at the end (sector size alignment, perhaps?)

I don't know if it relates to anything but it might be loading some initial state of the game using an un-caught method that trips up fdc emulation and mass storage drivers?

This is the video in question that I found: 
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

Ok, no more mystery : there was a call to BCCEh that I had overlooked.
;;initialize Amsdos - SDT.4
org &98fb
ld hl,&ab51
ld de,&2a00
ld bc,&0060
ldir
ld c,7
ld de,&a660
ld hl,&abff
jp &bcce
I replaced it with a call to a patch stored in the Restart table (RST 5 &6). It will call the original function, and then set the correct drive number in A700h.
;;initialize Amsdos - SDT.4
org &98fb
ld hl,&ab51
ld de,&2a00
ld bc,&0060
ldir
ld c,7
ld de,&a660
ld hl,&abff
jp &0028

ORG &0028
call &BCCE                          ;;prechaining
ld a,0                              ;;get drive number (self-modifying code)
ld (&A700),a                        ;;store drive number in AMSDOS data area
ret

A bit funky, but now the game can be launched from Drive B. And the Save/Load options work too.
That is, with emulators. I dunno if it will work with all your modern gadgets 😶

Quote from: Devlin on 20:13, 02 December 24I noticed one thing watching a longplay of the original disk version - the game loads off the disk when accessing certain texts.
Those disc accesses during the game are direct readings from the end sectors. I mapped those sectors in extra-memory,  so now it's a simple copy from extra-ram to ram, and the game will play faster as a side-effect.

Xyphoe

I just want to say - great work so far!

I'll want to play this when finished, I stumbled across this doing my 'hidden gems' series on the Amstreams and this got voted in as one ('hidden gem') by the chat. Then I ended up doing more streams of this on Twitch I enjoyed it so much, but I ended up leaving it because yea... I didn't understand the Spanish/French and what was going on. And didn't have the patience to be constantly translating. So yea keep going!

Devlin

Done the tests again with the new image, and I ended up with similar issues

On my 6128:
Real A: drive - works
U2, mounted DSK - works
U2, direct USB - failed at beep after game loads and does not start the attract mode when pressing a key to start it.

On my 464 +ramexp :
Mounted DSK - fails as above.
Direct USB - fails as above.

Something is absolutely happening in-between that beep after the first load and the attract mode that's causing it to bug out. that's my gut feeling - though I couldn't at all say exactly what it could be. Up to that point it seems to load completely fine. I think a clue might be in the fact it works when mounted on the 6128 though.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

I'm afraid I can't be very helpful here : my good old 464 from 1985 is long gone, and I only use emulators nowadays. I understand nothing about those U2, M4, Gotek novelties !
But my thought is : if the game works fine from a real hardware, and it should from what I saw on various emulators, then it should also work with those extensions intended to simulate extra-RAM & disk drives.

Jean-Marie

If you have access to a debugger in ROM, or a Multiface 2, maybe you could check the RAM content.
Offset FFD0h should contain 45 bytes of instructions (the patch to read SDT.6 data).
Offset C000h in bank 7 (extra 64 Kb) should contain the SDT.6 file (11 Kb).

Devlin

Quote from: Jean-Marie on 17:07, 03 December 24If you have access to a debugger in ROM, or a Multiface 2, maybe you could check the RAM content.
Offset FFD0h should contain 45 bytes of instructions (the patch to read SDT.6 data).
Offset C000h in bank 7 (extra 64 Kb) should contain the SDT.6 file (11 Kb).

I don't have either, sadly, or I'd have been able to have a look and see what's going on for you.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Devlin

#43
I think there's no point delaying any more, so here's the first release!

CREDITS:
Hacking and code fixes : Jean-Marie
Translation : me :)

Requires: 128K and a disc drive. (NOTE: If using mass-storage dsk emulation, a 6128 is required.)
If you can help make it mass-storage(usifac2 et al) friendly, get in touch in the thread, or drop a modified dsk in the thread and I will test and see about getting it added to the release.

Controls :

Keyboard
W - Up
A D - Left/Right
X - Down
Space - place/take mine, hold to jump across pits and hazards (hint: stand one space away, hold jump button and then press direction)
Enter - Shoot
I - Inventory
COPY - Open Load/Save menu

Joystick:
Joy UDLR - Move
Button 1 - Shoot
Button 2 - Mine/Jump

If you like this, consider leaving a donation on my ko-fi page, as I quite enjoyed this and it'd be a nice encouragement to tackle another project :)
https://ko-fi.com/magicbane
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

GUNHED

Thanks for your efforts! 

Potential improovements:
- Use Cursor key instead of ADWX
- Game doesn't work with attached expansion ROMs, so initialize only ROM 7 instead all ROMs when loading.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2024.10.27)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Devlin

Quote from: GUNHED on 13:02, 05 December 24Thanks for your efforts!

Potential improovements:
- Use Cursor key instead of ADWX
- Game doesn't work with attached expansion ROMs, so initialize only ROM 7 instead all ROMs when loading.
Kept the game as faithful to the original as I possibly could, so I didn't request controls being changed. Joystick works just fine though, for now.

But yes, changing controls to cursor would be a good change to make for a future update.

As for the ROM thing, I'm honestly not sure. Jean-Marie did all the good stuff regarding the new crack.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Jean-Marie

Quote from: Devlin on 13:53, 05 December 24- Game doesn't work with attached expansion ROMs, so initialize only ROM 7 instead all ROMs when loading.
Mmm, that's already the case actually 🤔
ORG &1958
jp &19AC
;initialise_amsdos:
ld hl,(&be7d)    ;Get address where current drive number is stored
inc hl  ;Move forward 2 bytes to the address where the drive
inc hl  ;number of the most recently loaded file is stored
ld a,(hl)    ;Get drive number (A = 0, B = 1)
push af      ;Store drive number on the stack
ld de,&a660
ld hl,&abff      ;Highest usable byte of memory
ld c,7  ;AMSDOS ROM is located in slot 7
call &bcce  ;Initialise the selected ROM
pop af  ;Get drive number
ld hl,(&be7d)    ;Get new address where drive number is stored
ld (hl),a    ;Set drive number
ld (PatchDriveB+4),a                        ;;store drive number in RST 5
;;initialize Amsdos - SDT.4
org &98fb
ld hl,&ab51
ld de,&2a00
ld bc,&0060
ldir
ld c,7
ld de,&a660
ld hl,&abff
jp &0028

PatchDriveB:
;;ORG &0028   - RST 5&6
call &BCCE                          ;;prechaining
ld a,0                                      ;;get drive number (self-modifying code)
ld (&A700),a                        ;;store drive number in AMSDOS data area
ret

Quote from: Devlin on 13:53, 05 December 24But yes, changing controls to cursor would be a good change to make for a future update.
Ah yes, I didn't think about it. What should be the fire buttons ?

BTW, I've made a small change to the loader, so that it displays an error message for 64k users.

Devlin

Quote from: Jean-Marie on 14:09, 05 December 24Ah yes, I didn't think about it. What should be the fire buttons ?

BTW, I've made a small change to the loader, so that it displays an error message for 64k users.

The other controls are fine, they're space, enter, I and COPY - reasonable enough, I feel.
CPC464 & CPC6128 + USIfAC II + Revaldinho 512k(universal cpld ver) - Schneider CRT TV
Administrator of Amstrad Discord : https://discord.gg/ksWvApv

Powered by SMFPacks Menu Editor Mod