|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
![]() |
Author | Message |
---|---|
|
Champion Kendou, Star Jacker [v2]
![]() 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. |
|
![]() ![]() ![]() |
|
|
![]() |
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 |
|
![]() ![]() ![]() |
|
|
![]() |
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 :) |
|
![]() ![]() ![]() |
|
cris
|
![]() |
V1 is older than V1-alt, then? | |
|
![]() |
Yes, V1-alt is a bugfixed version of V1. The same bug is in V0 (offset $1bd2). | |
![]() ![]() ![]() |
|
smsfan4ever
|
![]() |
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. |
|
![]() ![]() ![]() |
|
smsfan4ever
|
![]() |
You should rename it then. I think it makes more sense :) | |
|
![]() |
Star Jacker [v1-alt] is now renamed to Star Jacker [v2]
v1-alt has never existed. |
|
![]() ![]() ![]() |
![]() |