| Posted By
Waz on 2020-08-02 18:39:51
| Tom Thumb listing POKE
Having reunited myself with a cassette original recently (and for a mere 99p, bargain price) I thought that as there's no monitor command to restart the game once you've entered the infinite lives cheat, why not do what I used to do a lot on the C64 and make a listing POKE to load the game for you with the cheat present?
It was an interesting time, because I'd already worked out the necessary routines to load the game up to the FOUND prompt, where it loads part of the loader into the tape buffer. And this is where it gets interesting, for a number of reasons.
1 - The tape buffer on FOUND has some of the code loaded from $0300 onwards, but this is all a value of $01 more than it actually is. So STA $FF19 for setting the border colour (8D 19 FF) becomes 8E 1A 00 (the FF cycles back up to 00) - and when the loader finishes its load, subtracts the $01 value back beforehand.
2 - The game code itself on load is actually loaded with values that are EORed with a value of $70, the idea being that it would be harder to effectively enter the value you want because that is changed. We know that the original value at $35CD is $CA (for the DEX command) but the value that appears during the game load is actuallly $BA. So $BA EOR $9A = $70 (to work out the EOR needed) Therefore, if you want to set this byte to $EA (NOP) then you actually have to set it to the value EORed with $70, which is $9A.
From there it was a case of loading the game to the FOUND prompt, redirecting the code at $035A to set the border colour to my routine (ensuring the values were set to $01 higher so they'd decrease on load and go to the routine I wanted) and then ensure that I set the border colour, set $35CD to $9A and return, so it always applies it during the load process.
The result? Infinite lives, and successfully tested with the original cassette version on a real Plus/4, followed by a TAP image in VICE and Yape. All working as intended, so I'll add it to the cheats section with the instructions. You simply type in the listing, run it and if successful, you'll see SYS1632 at the top of the screen. Move the cursor to the line, press RETURN and the game will load with inifnite lives set.
Can one of the MODs though please make the main blob text wider so it'll read more clearly?
|
|
Posted By
retroscener on 2020-07-30 19:47:47
| Re: Tom Thumb listing POKE
99p for Tom Thumb? Deal of the century.
|
|
Posted By
MMS on 2020-07-30 20:37:25
| Re: Tom Thumb listing POKE
|
|
Posted By
Luca on 2020-07-30 21:16:00
| Re: Tom Thumb listing POKE
Waz great listing stuff as cheat. Tech note: change the order number when you enter a new cheat, based on what there's already there.
|
|
Posted By
Waz on 2020-07-31 03:23:24
| Re: Tom Thumb listing POKE
Cheers Luca, will note that for future reference.
Is there any chance the blob can be made wider (similar to Finders Keepers) so that the listing cheat appears a bit neater on the page, please?
It was good fun to do though, and definitely before writing that I had spent many hours playing that classic back in the day. Still so good.
|
|
Posted By
RĂ¼diger on 2020-08-01 10:51:49
| Re: Tom Thumb listing POKE
Just typed in this short listing and tested it in YAPE. I saw that if you use it with a TAP of a C-16 only version, an incorrect value is written into the memory and the cheat does not work.
The ulterior motive is that this program could also be used to load a real C-16 only cassette onto a Plus/4 or with memory expansion. One would only have to change the access to $ FF13 afterwards to the correct values.
From Kingsoft exits a lot of Tom (german title) cassettes that were not fixed on Plus/4, same as well as the first Plus Paket 16 cassettes.
@Luca / Csabo: should we upload the program too? Have it as a prg on my computer.
|
|
Posted By
Waz on 2020-08-02 18:46:46
| Re: Tom Thumb listing POKE
Cheers for that information Rudiger.
I should mention that my listing was for the Anirog original release which had C16 and Plus/4 on the box, and the corresponding TAP image was also tested. Utilising that in both VICE and YAPE with the model set to C16 does work.
The C16 only Kingsoft version uses a slightly different EOR value to change the screen colour for $FF19 at $035A but that's the only tape loader difference. However, the difference is that the game uses a different EOR value from the Anirog version when the game loads, so the value loaded into $35CD is different (it's an EOR of $EA, meaning value needed to be set is actually $00, so when EORed on load, it's set right.)
So a quick tweak of the original listing and I've created a fresh working one just for that Kingsoft version, which works on YAPE and VICE when set to C16 only mode, and put that on the cheats page. Infinite lives will be yours.
You could also incorporate the $FF13 access fix as well to make it work on a Plus/4 too, but you can use the revised listing as a starting point.
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |