Author Topic: Converted GX4000 .cpr - The topic (repository link in first post)  (Read 208069 times)

0 Members and 2 Guests are viewing this topic.

Offline Phantomz

  • 6128 Plus
  • ******
  • Posts: 1.020
  • Country: gb
  • Liked: 1371
@remax

Reuploaded as it was corrupted on the wiki

Cheers   :)  No idea why that happened.  :-\

I'm gonna update the full package again, big thanks to Phantomz and dragon for uploading all your games :)

No problem  :)  I'll be uploading another game soon.  ;)

I've just uploaded " CoolBox " and a new version of " Jewel Warehouse " to the wiki page.  ;)  You can now Pause with Joypad Button 2, unpause with Button 1, Quit with console pause button.

I'll upload the next game I'm working on asap.  ;D
« Last Edit: 22:47, 04 July 16 by Phantomz »

Offline Phantomz

  • 6128 Plus
  • ******
  • Posts: 1.020
  • Country: gb
  • Liked: 1371
Ok here is the next game I've been working on, this time I bring you the classic....

" Crafton & Xunk / Get Dexter 8)

Joypad 1 Button 1 to pass title screen.
Language select screen options, Left = French, Joypad 1 Button 1 = English, Right = German.

Use Joypad 1 LEFT and RIGHT to Select control option 1 or 2, Joypad 1 Button 1 to Begin Game.

Option 1 = Walk in the direction you push
Option 2 = Left, Right and Down to Turn, Up to Walk

Joypad 1 Button 1 to Jump
Joypad 1 Button 2 to Pause / Unpause
Joypad 2 Button 1 to Pick Up
Joypad 2 Button 2 to Drop
Joypad 2 LEFT to Recall Xunk
Joypad 2 RIGHT to Pull
Quit game with Console Pause Button
« Last Edit: 19:58, 07 January 17 by Phantomz »

Offline Phantomz

  • 6128 Plus
  • ******
  • Posts: 1.020
  • Country: gb
  • Liked: 1371
The version of " Crafton & Xunk / Get Dexter " that I first uploaded above gives corrupt graphics for some reason.  :doh:

I've now done a new version which appears to be ok, grab the new version above or on the wiki page.  ;D
« Last Edit: 22:18, 06 July 16 by Phantomz »

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.302
  • Country: es
  • Liked: 543
P=abandon
button pad 1 2 fly in airport

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.302
  • Country: es
  • Liked: 543
For the people want play galaxy force normal withouth pokes.

Game with return.

p+1 pausa p+2 abandon.

The people only want view the game with the pokes to the finsih can use the other cartridge with broken return.(with inifinite fuel  poke yo don't die and you dont return).
« Last Edit: 23:59, 07 July 16 by dragon »

Offline Tolkin

  • CPC664
  • ***
  • Posts: 84
  • Liked: 25
Hello, is there a "How to" for finding the used Keys in Games?
I tried converting Scramble Spirits to a CPR, but failed with the Keys in the Main Menu.
I tried finding the keys using Winape, but failed.
Maybe someone can throw me in the right direction?

Thanks so much
Tolkin

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.302
  • Country: es
  • Liked: 543
I remember this game i think i have it on tape. is a speccy port.

Not exist a guide because every game and cracker is different.

Anyway if you use the bmc version is uncompressed.

http://cpcrulez.fr/GamesDL_arc/index.php?download=dLXnzdK8jbfUv9XDk7vp38S5Y5-4mt_DkQ==&p=aLPi0diuhsXpm9i9k7PiztG_gMXl1dfDlcWj1NnH

with the winape debug breakpoing->add input/output breakpoint "keyboard read".

the breakpoint reveals in(A),c in a &08f2

folowing  A route its load to l and later its return to register a inm &08ff

The instruction in &900 bit x,a sounds familiar to comparing  the bit x of x line of the keyboard.

Programming:Keyboard scanning - CPCWiki

So go to the ret in 0904 and made step in to make the program return the direction where the call is called.

That reveals a structure tipe ld A,x call &085c from &5a31-5a56.


Taking the picture:



For example:

&5a31 ld a,26
&5a33 call &08c5

26= hexadecimal number in decimal (use windows calculator to convert it easy).=38

38 in the picture is the :



38 is the "M".

As cpcpower tells :

"* CHEAT MODE (Invulnérable) :
 A l'écran du choix des contrôles pour le Player1 et Player2 enfoncer simultanément les touches O+M (Clavier QWERTY - aucun son ou message ne viendra confirmer la bonne activation du cheat mode)"

Probably is the M of the cheat code.

So to change a key to joypad

1º localize the key you want to change
2º calculate the new code of keypad from the picture.(48,49,4a,4b,4c,4d)
3º Open the dsk wth a hexadecimal editor:

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

Search in the hex editor the hex code of the call and the a.

For example

Ld a,26 call &08c5= search 3e 26 cd c5 08

subtitute in the hex editor the 26 to 4c(joypad fire 1) for example.

save the dsk in the editor and try the changes.

early of that you can try the changes directly modifing the memory in the winape withouth the hex editor.


The Amstrad CPC Firmware Manual - Index
-----------------------------------------------------------------------------------------------------
In the Y/N trainer selection. Make a breakpoint in &bb00 to bb4e(in all rst 08) view the first item stack(the direction where the calls return after finished)..
 
Reveals the firmware call bb06 is called in &a227


&BB06
KM WAIT CHAR
ActionWaits for the next character from the keyboard buffer
EntryNo entry conditions
ExitCarry is true, A holds the character value, the other flags are corrupt, and all other registers are preserved

So when a key is pressed it return the code to a register.

The subrutine use the ascii code so using this:



For example the &a22a cp 59 is =89 in decimal= "Y".

The keypad 1 fire 1 and two are interpreted by the firmware as  "X" and "Z", so change the cp codes to these letters make the work.


-------------

In the crak intro, using the winape breakpoint keyboard.

Reveals the in(A),c is in 4cc1

Is a standalones subrutine. So.

In 4ccd looks to cp 7f=01111111 in binary.

space is in line 45 bit 7 in the keboard matrix.

Programming:Keyboard scanning - CPCWiki

The cpc interpret the keyboard presses as "0" in binary an "1" not pressed. A keyboard line is former with 8 bits. space is in bit 7 Thats the reason the space=7f

So is necesary change the cp to the pad1 fire 1 pressed. calculting it in binary and hex.

So: 11101111(bit 4 fire 1 pressed)=ef

But pad1 fire 1 is in line 9 not the line 5 where the space is .

So you need locate the 45 and change to 49.

This is located in &4cba ld bc,&f645
« Last Edit: 13:48, 12 July 16 by dragon »

Offline Tolkin

  • CPC664
  • ***
  • Posts: 84
  • Liked: 25
Hy Dragon,
thanks for the big explanation.
I can follow the process and it clears a few questions.
I will try to get it by myself now :)

Thanks so much!

Tolkin

Offline Phantomz

  • 6128 Plus
  • ******
  • Posts: 1.020
  • Country: gb
  • Liked: 1371
@Tolkin

How you getting on?

I've convert the game to be GX4000 friendly, I can upload it in a bit if you want, just play testing at the moment in MESS  ;D

Offline Phantomz

  • 6128 Plus
  • ******
  • Posts: 1.020
  • Country: gb
  • Liked: 1371
" Scramble Spirits ".

The Cheat ( Trainer ) gives infinite Lives for both Players.

Press the Console Pause Button on the screen with " Press Fire To Start " in the middle to activate the inbuilt cheat, this appears to only work with Player one though.

Enjoy.  :)

« Last Edit: 19:59, 07 January 17 by Phantomz »