![]() |
![]() |
#1 |
Junior Member
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
|
Stuntcar Racer on a CD32
I have the Pyrodex single-file crack of this game which runs fine on a standard CD32 with one problem - You must enter a name before starting the game - which is not easy when you don't have a keyboard. The Joypad button can be used instead of <ENTER> but the routine won't allow a blank name to be entered.
I thought I could throw in a couple of NOP's at the right place but it turned out not to be as straight forward as I thought (eg: like bypassing a wait-for-mouse-button press in many intros). Can anyone tell me how I can make changes to bypass the name entry in this game by changing the hex codes? |
![]() |
![]() |
#2 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
![]()
Unfortunately it won't be as easy as changing a few bytes because Pyrodex packed the file into a single load. It depacks the full game and it would be at that point that you need to patch it, after decrunching.
It would require running another program first which runs it, depacks and patches it or tacking on a new part to the current single file. Would an adjustment to the WHDLoad version so that a blank name can be entered be any use instead? You could burn that onto a CD and that way it wouldn't require stuffing around with Pyrodex' often dodgy code. |
![]() |
![]() |
#3 |
Junior Member
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
|
I have already decrunched the file and am running that version so i think I could change the bytes safely, but as far as adding extra code - I don't think so.
Yes, a WHDload slave that could achieve the same thing would be better as WHDload is usually more system friendly than the single-file versions of the games I've seen. The only disadvantage with a WHDload version is the extra memory usually required for the games, but I think in the case of StuntCar Racer this is not a problem. |
![]() |
![]() |
#4 | |
Oh noes!
Join Date: Mar 2003
Location: Neverland
Posts: 766
|
Gary
Did you ever get anywhere with this? I'm in the exact same position with a couple of games using f1 or input name/number + enter. A general cd32 button = key function in whd would be nice.. but I guess a bit far fetched. The jst install for shadow of the beast is one of the best I've seen for this. Quote:
|
|
![]() |
![]() |
#5 | |
Junior Member
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
|
Quote:
It was frustrating to come accross games that required F1 or F10 to start, yet at other points the FIRE button was used to proceed. |
|
![]() |
![]() |
#6 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
If you guys don't report the keyboard requirements to the WHDLoad authors they won't know anybody wants them! I have changed a few games like Plutos and Puzznic which required you to press keys to start and it's usually very easy to do.
|
![]() |
![]() |
#7 |
Oh noes!
Join Date: Mar 2003
Location: Neverland
Posts: 766
|
Well.. um.. eh .. that would be to easy..and I'll sound all whiny about blodmoney or sumethin' eh..
yea will do ![]() *Fires up cd32* |
![]() |
![]() |
#8 |
Junior Member
Join Date: Mar 2002
Location: Perth, Western Australia
Age: 50
Posts: 283
|
I received this email from Amiga Boy and after making the changes I now have a version of StuntCarRacer that does not require a keyboard:
Code:
================ - The name enter screen of Stunt Car Racer requires you to press enter to submit your name. Obviously, this isn't possible on a CD32. - Boot Stunt Car Racer with an Action Replay attached. - On the name screen, set a memory breakpoint on 0x1ED5B (it never changed for me but if it did, find out where it's storing your name). Now type a character. You'll break into AR at 0x5B80C: 0005b802 247c 0001 ecab MOVEA.L #$0001ecab,A2 0005b808 1580 2000 MOVE.B D0,(A2, D2.W*1, $00) == $0001ed5c 0005b80c 5201 ADD.B #$00000001,D1 0005b80e 4ef9 0005 b744 JMP.L $0005b744 0005b814 1401 MOVE.B D1,D2 - The line we're on is adding 1 to D1. Obviously this is a character count. What we want to do is find out where enter is pressed and change that. The code for Carriage Return is 0xD. Scroll up. Eventually you'll hit: 0005b740 123c 0000 MOVE.B #$00,D1 0005b744 1401 MOVE.B D1,D2 0005b746 d439 0001 bbd5 ADD.B $0001bbd5,D2 0005b74c 4eb9 0005 9850 JSR.L $00059850 0005b752 4a39 0006 2bb5 TST.B $00062bb5 0005b758 6a00 0012 BPL.W #$0012 == 0005b76c 0005b75c 4eb9 0005 9928 JSR.L $00059928 0005b762 4a39 0005 b83d TST.B $0005b83d 0005b768 6600 00c2 BNE.W #$00c2 == 0005b82c 0005b76c 0c00 000d CMP.B #$0d,D0 0005b770 6700 00ba BEQ.W #$00ba == 0005b82c - 0x5B76C checks D0 against 0xD. This must be it. Temporarily change the following BEQ to BRA. Now when you have at least 1 character and you press any other button, it goes into the game. Good. Some progress! - EDIT: Button already works! Type stuff and press your button and it continues. heh. Silly me. Forgot what I just said :-) - The next thing we need to do is make it so you don't need any characters in there. Well, once you press enter, we go to 0x5B82C. Let's go there: 0005b82a 5201 ADD.B #$00000001,D1 ; Add 1 to number of letters entered 0005b82c b239 0005 b83c CMP.B $0005b83c,D1 ; Compare entered letters to 0xC (12) 0005b832 6d00 ffe0 BLT.W #$ffe0 == 0005b814 ; If we've entered too many, go somewhere 0005b836 4ef9 0006 4834 JMP.L $00064834 ; Jump - hmmmm. It adds 1 to the number of letters entered. Perhaps this only happens when the letter has been validated? - ok. Figured it out. Sorry to skip ahead :-) - At 0x5B76C, change to: 0005b76c 103c 0078 MOVE.B #$78,D0 0005b770 6000 00a2 BT .W #$00a2 == 0005b814 - This says move the letter 'x' into D0. Then we branch to 0x5B814. 0005b814 1401 MOVE.B D1,D2 0005b816 d439 0001 bbd5 ADD.B $0001bbd5,D2 0005b81c 103c 0020 MOVE.B #$20,D0 0005b820 247c 0001 ecab MOVEA.L #$0001ecab,A2 0005b826 1580 2000 MOVE.B D0,(A2, D2.W*1, $00) == $0001ed5c 0005b82a 5201 ADD.B #$00000001,D1 ; Add 1 to number of letters entered 0005b82c b239 0005 b83c CMP.B $0005b83c,D1 ; Compare entered letters to 0xC (12) 0005b832 6d00 ffe0 BLT.W #$ffe0 == 0005b814 ; If we've entered too many, go somewhere 0005b836 4ef9 0006 4834 JMP.L $00064834 ; Jump - Now at 0x5B81C, change to: 0005b81c 4e71 NOP.L 0005b81e 4e71 NOP.L - Now at 0x5B832, change to: 0005b832 4e71 NOP.L 0005b834 4e71 NOP.L - So what's happening? * Put 'x' into D0 (ie. Pretend we typed this) * Move 'x' into D2 * Prepare D2 * Set A2 to 0x1ECAB * Move 'x' into name storage area * Add 1 to number of characters in name * Do a useless compare * Jump to the game - Now in the game, your name is 'x' :-) ======== |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Combo Racer | mai | support.Games | 1 | 24 September 2010 01:54 |
StuntCar Racer multiplayer link | Bloodwych | Nostalgia & memories | 43 | 03 June 2010 01:12 |
T-Racer | MethodGit | request.Modules | 1 | 05 April 2007 19:31 |
F1 Racer | Solid Snake | request.Old Rare Games | 2 | 15 May 2006 17:42 |
StuntCar Racer Pro canned | Bloodwych | Retrogaming General Discussion | 9 | 18 December 2005 14:23 |
|
|