Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Champion Kendou, Star Jacker [v2]

Reply to topic
Author Message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8649
  • Location: Paris, France
Reply with quote
Champion Kendou, Star Jacker [v2]
Post Posted: Sun Feb 05, 2006 5:58 pm
Last edited by Bock on Sat Feb 18, 2006 6:58 pm; edited 1 time in total
Hello! Two good old SG-1000 games releases tonight, just before I run away to hide for another couple of decades.

First is original Champion Kendou for the SG-1000, for all of you Kendou (Kendo) fanatics! In all SG-1000 glory, pretty much like Champion Pro Wrestling and Champion Boxing with a weird in-game menu interface, this kendo simulation may gives you even more fun considering it's in japanese and most people are likely NOT to understand kendo anyway. Can you beat the harder level?

And then we have Star Jacker [v2] for the SG-1000, a very minor variation of version 1 of Star Jacker, no noticeable in-game difference although it is supposed to correct a bug. This is stricly for the maniac game historian we are. A technical analysis of the code difference should be posted on the forum shortly.
*EDIT* Originally released as v1-alt, since then figured out that this was a later version so it is v2.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8649
  • Location: Paris, France
Reply with quote
Post Posted: Thu Feb 09, 2006 10:40 am
What Maxim had to say about the code differences:

   ld     a,$00           ; 001E50 3E 00
   ld     ($c066),a       ; 001E52 32 66 C0
   push   ix              ; 001E55 DD E5
   push   iy              ; 001E57 FD E5
   call   $5afa           ; 001E59 CD FA 5A
   pop    iy              ; 001E5C FD E1
   pop    ix              ; 001E5E DD E1
   ld     a,$86           ; 001E60 3E 86
   ld     ($c066),a       ; 001E62 32 66 C0
   call   $5afa           ; 001E65 CD FA 5A

c066 is the music engine write trigger. $5afa is Sound_Update(). This code
is stopping the current music and SFX, and then starting sound number $86,
which is attached in VGM format.

It's calling Sound_Update() to make extra sure that the value written has
been handled before writing another one to the same address.

This music plays when you reach the end of each round. (I cheated, I am no
good at this game. MEM[c142]=05 ; infinite ships, causes some bugs.) The
Sound_Update() function clobbers ix (seemingly not iy) and this changes (in
my test) from c140 to c0c9. After a few dozen instructions the game writes
to (ix+0) and (ix+1), at offset 1d10. This is dealing with copying and
inverting player controls, perhaps to control the manoeuvring of the
player's ships onto the larger launch ship; but this is a one-time error
which has no apparent effect overall.

The data at c0c9-a gets overwritten, I think by enemy/missile data.

Regarding the inst_after = 2223 > pc_temp = 221e messages: I get those when
debugging the code mentioned (b 1e68, b 1d10) with the RAM patch active.
Meka crashed twice while that was also happening, apparently when I was
pressing the fire buttons too. I may have hit the Windows key (between Ctrl
and Alt) by accident those times too, though.

The RAM patch causes bugs in the game too.

I don't think it is necessary to go hunting for that crash because it's a
very unlikely circumstance.

I played up to level 31 with my cheat; I don't think this game ever ends :)

Maxim
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Mon Feb 13, 2006 1:24 pm
Here's a more understandable version:

Star Jacker V1 (SJACKERA.SG)  Star Jacker [v1-alt].sg

ld     a,$00                  ld     a,$00
ld     ($c066),a              ld     ($c066),a
push   ix                     push   ix
push   iy                     push   iy
  call   $5afa                  call   $5afa
pop    iy                       ld     a,$86
pop    ix                       ld     ($c066),a
ld     a,$86                    call   $5afa
ld     ($c066),a              pop    iy
call   $5afa                  pop    ix

The original release included both version 0 (SJACKER.SG) and version 1 (SJACKERA.SG) in the zip file. Well, I'm not sure why they're called that, I guess Bock figured out that one was a later version somehow, either that or I forgot. In the one that has just been released, the above section of code has been reordered because the call $5afa function call will affect the value in register ix (I didn't see it change iy but maybe it does sometimes) and the second call is not protected by push/pop instructions to preserve its value; thus, whatever value was in ix will be corrupted. I traced through the code to find what it was used for, and it seemed to be doing something related to player controls. However, I couldn't find that it caused any problems with the "buggy" version - the changed value of ix caused it to write to memory at a wrong location, but that same memory location is overwritten very soon after with other data.

I don't know if the different versions have different MPR numbers :)
  View user's profile Send private message Visit poster's website
cris
  • Guest
Reply with quote
Post Posted: Thu Feb 16, 2006 2:26 am
V1 is older than V1-alt, then?
 
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Thu Feb 16, 2006 10:19 am
Yes, V1-alt is a bugfixed version of V1. The same bug is in V0 (offset $1bd2).
  View user's profile Send private message Visit poster's website
smsfan4ever
  • Guest
Reply with quote
Post Posted: Sat Feb 18, 2006 11:43 am
I understand that the changes are minimal, but why it's not called V2?
 
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8649
  • Location: Paris, France
Reply with quote
Post Posted: Sat Feb 18, 2006 5:31 pm
smsfan4ever wrote
I understand that the changes are minimal, but why it's not called V2?

Good point.
Because at the time I labelled it I could not tell which was newer. And Maxim analysis didn't make it realize I should rename it.

Shall I rename it now? I think I will.
  View user's profile Send private message Visit poster's website
smsfan4ever
  • Guest
Reply with quote
Post Posted: Sat Feb 18, 2006 6:03 pm
You should rename it then. I think it makes more sense :)
 
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8649
  • Location: Paris, France
Reply with quote
Post Posted: Sat Feb 18, 2006 6:58 pm
Star Jacker [v1-alt] is now renamed to Star Jacker [v2]

v1-alt has never existed.
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!