Jump to content
IGNORED

[Final] Monkey King


Coolcrab

Recommended Posts

Yes I looked at that. How do you set it to pal or NTSC? Is it that little drop-down in the vbb program or do you need to add some kind of code?

 

NTSC is the default and is unnecessary. You don't want to set it to PAL if you want to use PAL60.

  • Like 1
Link to comment
Share on other sites

That makes sense. I have a bunch of NTSC games that work on my pal console (apart from the colors).

Pal 60 is best then I think as people can compare scores between regions.

 

Yeah, all you have to worry about are the colors, so that's nice. No more speed differences.

  • Like 1
Link to comment
Share on other sites

I made a list of constants you can use instead of raw color values. You can cut-and-paste one or the other for NTSC or PAL60. Of course, this doesn't make the resulting ROM both NTSC and PAL60. But, at least makes compiling either one easy.

 

 rem //** NTSC Colors **//


 const _aqua = $B8
 const _black = $00
 const _blue = $86
 const _dkgray = $06
 const _fuchsia = $58
 const _gray = $08
 const _green = $D8
 const _lime = $DE
 const _ltgray = $0A
 const _maroon = $52
 const _navy = $A4
 const _olive = $E8
 const _purple = $6C
 const _red = $44
 const _silver = $0C
 const _teal = $AA
 const _white = $0E
 const _yellow = $1E
 const _brown = $E6
 const _dkblue = $70
 const _pink = $5E
 const _skyblue = $AE
 rem //** PAL Colors **//


 const _aqua = $78
 const _black = $00
 const _blue = $D6
 const _dkgray = $06
 const _fuchsia = $88
 const _gray = $08
 const _green = $38
 const _lime = $3E
 const _ltgray = $0A
 const _maroon = $82
 const _navy = $94
 const _olive = $28
 const _purple = $AC
 const _red = $64
 const _silver = $0C
 const _teal = $9A
 const _white = $0E
 const _yellow = $2E
 const _brown = $26
 const _dkblue = $C0
 const _pink = $8E
 const _skyblue = $9E
  • Like 1
Link to comment
Share on other sites

 

I made a list of constants you can use instead of raw color values. You can cut-and-paste one or the other for NTSC or PAL60. Of course, this doesn't make the resulting ROM both NTSC and PAL60. But, at least makes compiling either one easy.

 

 rem //** NTSC Colors **//


 const _aqua = $B8
 const _black = $00
 const _blue = $86
 const _dkgray = $06
 const _fuchsia = $58
 const _gray = $08
 const _green = $D8
 const _lime = $DE
 const _ltgray = $0A
 const _maroon = $52
 const _navy = $A4
 const _olive = $E8
 const _purple = $6C
 const _red = $44
 const _silver = $0C
 const _teal = $AA
 const _white = $0E
 const _yellow = $1E
 const _brown = $E6
 const _dkblue = $70
 const _pink = $5E
 const _skyblue = $AE
 rem //** PAL Colors **//


 const _aqua = $78
 const _black = $00
 const _blue = $D6
 const _dkgray = $06
 const _fuchsia = $88
 const _gray = $08
 const _green = $38
 const _lime = $3E
 const _ltgray = $0A
 const _maroon = $82
 const _navy = $94
 const _olive = $28
 const _purple = $AC
 const _red = $64
 const _silver = $0C
 const _teal = $9A
 const _white = $0E
 const _yellow = $2E
 const _brown = $26
 const _dkblue = $C0
 const _pink = $8E
 const _skyblue = $9E

 

That is useful! Thanks. Although that would require me to know what Fuchia and teal is. But I can look up the color hex in one and compare it to the other.

 

 

I just got around to trying this out today and it's much more fun than the screenshots led me to believe. This is really enjoyable. Great work so far!

Thanks! I admit that the graphics are the weak point here. But with the space (and knowledge) limitations it's hard to really up those in a meaningful way. I'll try to make a gameplay video soon-ish and hopefully that will enthuse more people.

  • Like 1
Link to comment
Share on other sites

Oops.. I guess I did misspell fuschia in that.

 

fuschia is, like, a more intense salmon pink to me. Teal seems to be a darker sea green (to me). I forgot how obsessive I was about having the biggest crayon set as a kid :)

 

Since I select the colors that go best together from the Atari 2600 Color Compatibility Tool, it would take longer for me to find the name of the colors in your const list than just using the numbers. Any color name that isn't something simple like black, white, red, yellow, blue, green, orange, or purple is mostly meaningless to me anyway. I'd rather use something like this:

 

   ;****************************************************************
   ;
   ;  NTSC colors. Use these constants so you can quickly and
   ;  easily swap them out for PAL.
   ;

   const _00 = $00
   const _02 = $02
   const _04 = $04
   const _06 = $06
   const _08 = $08
   const _0A = $0A
   const _0C = $0C
   const _0E = $0E
   const _10 = $10
   const _12 = $12
   const _14 = $14
   const _16 = $16
   const _18 = $18
   const _1A = $1A
   const _1C = $1C
   const _1E = $1E
   const _20 = $20
   const _22 = $22
   const _24 = $24
   const _26 = $26
   const _28 = $28
   const _2A = $2A
   const _2C = $2C
   const _2E = $2E
   const _30 = $30
   const _32 = $32
   const _34 = $34
   const _36 = $36
   const _38 = $38
   const _3A = $3A
   const _3C = $3C
   const _3E = $3E
   const _40 = $40
   const _42 = $42
   const _44 = $44
   const _46 = $46
   const _48 = $48
   const _4A = $4A
   const _4C = $4C
   const _4E = $4E
   const _50 = $50
   const _52 = $52
   const _54 = $54
   const _56 = $56
   const _58 = $58
   const _5A = $5A
   const _5C = $5C
   const _5E = $5E
   const _60 = $60
   const _62 = $62
   const _64 = $64
   const _66 = $66
   const _68 = $68
   const _6A = $6A
   const _6C = $6C
   const _6E = $6E
   const _70 = $70
   const _72 = $72
   const _74 = $74
   const _76 = $76
   const _78 = $78
   const _7A = $7A
   const _7C = $7C
   const _7E = $7E
   const _80 = $80
   const _82 = $82
   const _84 = $84
   const _86 = $86
   const _88 = $88
   const _8A = $8A
   const _8C = $8C
   const _8E = $8E
   const _90 = $90
   const _92 = $92
   const _94 = $94
   const _96 = $96
   const _98 = $98
   const _9A = $9A
   const _9C = $9C
   const _9E = $9E
   const _A0 = $A0
   const _A2 = $A2
   const _A4 = $A4
   const _A6 = $A6
   const _A8 = $A8
   const _AA = $AA
   const _AC = $AC
   const _AE = $AE
   const _B0 = $B0
   const _B2 = $B2
   const _B4 = $B4
   const _B6 = $B6
   const _B8 = $B8
   const _BA = $BA
   const _BC = $BC
   const _BE = $BE
   const _C0 = $C0
   const _C2 = $C2
   const _C4 = $C4
   const _C6 = $C6
   const _C8 = $C8
   const _CA = $CA
   const _CC = $CC
   const _CE = $CE
   const _D0 = $D0
   const _D2 = $D2
   const _D4 = $D4
   const _D6 = $D6
   const _D8 = $D8
   const _DA = $DA
   const _DC = $DC
   const _DE = $DE
   const _E0 = $E0
   const _E2 = $E2
   const _E4 = $E4
   const _E6 = $E6
   const _E8 = $E8
   const _EA = $EA
   const _EC = $EC
   const _EE = $EE
   const _F0 = $F0
   const _F2 = $F2
   const _F4 = $F4
   const _F6 = $F6
   const _F8 = $F8
   const _FA = $FA
   const _FC = $FC
   const _FE = $FE


   ;****************************************************************
   ;
   ;  PAL colors. Use this when you want to automatically convert
   ;  your NTSC colors to PAL (if you were already using the NTSC
   ;  constants).
   ;

   const _00 = $00
   const _02 = $02
   const _04 = $04
   const _06 = $06
   const _08 = $08
   const _0A = $0A
   const _0C = $0C
   const _0E = $0E
   const _10 = $20
   const _12 = $22
   const _14 = $24
   const _16 = $26
   const _18 = $28
   const _1A = $2A
   const _1C = $2C
   const _1E = $2E
   const _20 = $20
   const _22 = $22
   const _24 = $24
   const _26 = $26
   const _28 = $28
   const _2A = $2A
   const _2C = $2C
   const _2E = $2E
   const _30 = $40
   const _32 = $42
   const _34 = $44
   const _36 = $46
   const _38 = $48
   const _3A = $4A
   const _3C = $4C
   const _3E = $4E
   const _40 = $60
   const _42 = $62
   const _44 = $64
   const _46 = $66
   const _48 = $68
   const _4A = $6A
   const _4C = $6C
   const _4E = $6E
   const _50 = $80
   const _52 = $82
   const _54 = $84
   const _56 = $86
   const _58 = $88
   const _5A = $8A
   const _5C = $8C
   const _5E = $8E
   const _60 = $A0
   const _62 = $A2
   const _64 = $A4
   const _66 = $A6
   const _68 = $A8
   const _6A = $AA
   const _6C = $AC
   const _6E = $AE
   const _70 = $C0
   const _72 = $C2
   const _74 = $C4
   const _76 = $C6
   const _78 = $C8
   const _7A = $CA
   const _7C = $CC
   const _7E = $CE
   const _80 = $D0
   const _82 = $D2
   const _84 = $D4
   const _86 = $D6
   const _88 = $D8
   const _8A = $DA
   const _8C = $DC
   const _8E = $DE
   const _90 = $B0
   const _92 = $B2
   const _94 = $B4
   const _96 = $B6
   const _98 = $B8
   const _9A = $BA
   const _9C = $BC
   const _9E = $BE
   const _A0 = $90
   const _A2 = $92
   const _A4 = $94
   const _A6 = $96
   const _A8 = $98
   const _AA = $9A
   const _AC = $9C
   const _AE = $9E
   const _B0 = $70
   const _B2 = $72
   const _B4 = $74
   const _B6 = $76
   const _B8 = $78
   const _BA = $7A
   const _BC = $7C
   const _BE = $7E
   const _C0 = $50
   const _C2 = $52
   const _C4 = $54
   const _C6 = $56
   const _C8 = $58
   const _CA = $5A
   const _CC = $5C
   const _CE = $5E
   const _D0 = $30
   const _D2 = $32
   const _D4 = $34
   const _D6 = $36
   const _D8 = $38
   const _DA = $3A
   const _DC = $3C
   const _DE = $3E
   const _E0 = $20
   const _E2 = $22
   const _E4 = $24
   const _E6 = $26
   const _E8 = $28
   const _EA = $2A
   const _EC = $2C
   const _EE = $2E
   const _F0 = $20
   const _F2 = $22
   const _F4 = $24
   const _F6 = $26
   const _F8 = $28
   const _FA = $2A
   const _FC = $2C
   const _FE = $2E


I got the PAL colors from the NTSC/PAL Color Conversion Tool.

  • Like 1
Link to comment
Share on other sites

I just played version 0.18b and found a bug:

 

Every time you reach 362 points the scrolling stops - you can still move your monkey but the trees don't scroll anymore.

 

 

Oops, I see why. Speed goes over 256 and the speed up works if speed > 0. So it stops at 0.

I'll have a fix up later today.

Link to comment
Share on other sites

 

Unsolicited advice here, but, sometimes I use yet another variable for longer lasting timing needs. I increment a counter variable and at the same time increment an additional counter. I do this at the beginning of my main loop:

main
 counter = counter + 1 : if counter = 255 then supercounter = supercounter + 1

 

I was actually thinking of how I could make the game go faster, as people seem to think that the max speed now is very manageable.

At max _speed it goes 1 pixel per loop and going above that will be hard I think without getting jumpy. Or call the move routine when supercounter =1 and then the normal move to do it twice.

The question is however how does one get down from this speed? because if its 1+50 and you go down by 30 twice it will be 1 + 245 instead of 0 + 245.

I guess something like IF slowdown > _speed then supercounter = supercounter -1 ?

Efficiency is important here as I lack ROM. :P

Link to comment
Share on other sites

I just played version 0.18b and found a bug:

 

Every time you reach 362 points the scrolling stops - you can still move your monkey but the trees don't scroll anymore.

 

 

Glitches are fixed and Higher max speed, fire button starts game, flipped game modes to emphasize its a multiplayer game.

THere is a small graphics glitch but it does not seem to be game breaking, so I felt OK uploading.

  • Like 1
Link to comment
Share on other sites

 

Glitches are fixed and Higher max speed, fire button starts game, flipped game modes to emphasize its a multiplayer game.

THere is a small graphics glitch but it does not seem to be game breaking, so I felt OK uploading.

 

Yep, the trees keep scrolling when you reach 362 points so that's fixed. It's good that you can start the game with fire now, this should be a standard for all games IMO.

The speed progression is nice and the max speed is pretty fast. I like that the game gets frantic fast enough to stay challenging and keep players going.

The climbing sound volume is also nice now, gives a good audio cue of the game speed without being annoying.

 

Apparently it's not possible to have no more than 3 branches in a row but it's not that important as it doesn't affect the gameplay negatively. With only 3 branches in a row it might even become too easy.

 

You're aware of the max speed not resetting after game over and the glitch with the score minikernel so these 2 bugs still need to be squished. ;)

Link to comment
Share on other sites

New Version is up! Bugs are fixed :) The score glitch was caused but too many gosubs.

 

 

Yep, the trees keep scrolling when you reach 362 points so that's fixed. It's good that you can start the game with fire now, this should be a standard for all games IMO.

The speed progression is nice and the max speed is pretty fast. I like that the game gets frantic fast enough to stay challenging and keep players going.

The climbing sound volume is also nice now, gives a good audio cue of the game speed without being annoying.

 

Apparently it's not possible to have no more than 3 branches in a row but it's not that important as it doesn't affect the gameplay negatively. With only 3 branches in a row it might even become too easy.

 

You're aware of the max speed not resetting after game over and the glitch with the score minikernel so these 2 bugs still need to be squished. ;)

I'm glad that you like it. The bugs are dead. (Now to hope no new ones are up :P)

Link to comment
Share on other sites

New Version is up! Bugs are fixed :) The score glitch was caused but too many gosubs.

 

 

Yep, the trees keep scrolling when you reach 362 points so that's fixed. It's good that you can start the game with fire now, this should be a standard for all games IMO.

The speed progression is nice and the max speed is pretty fast. I like that the game gets frantic fast enough to stay challenging and keep players going.

The climbing sound volume is also nice now, gives a good audio cue of the game speed without being annoying.

 

Apparently it's not possible to have no more than 3 branches in a row but it's not that important as it doesn't affect the gameplay negatively. With only 3 branches in a row it might even become too easy.

 

You're aware of the max speed not resetting after game over and the glitch with the score minikernel so these 2 bugs still need to be squished. ;)

I'm glad that you like it. The bugs are dead. (Now to hope no new ones pop up :P)

  • Like 2
Link to comment
Share on other sites

New Version is up! Bugs are fixed :) The score glitch was caused but too many gosubs.

 

I played v0.20 in Stella and haven't encountered any bugs. The AI is much better now, you can actually beat the computer player which makes the single player mode fun too.

My best score so far is 670 but i think i can do better if i keep playing.

Overall the game seems good as it is IMO. You just have to test it thoroughly on real hardware before releasing it on cart.

Link to comment
Share on other sites

I am trying to update the AI to be more livelike. It moves up and down to chase stones, but it seems to not always see the branches. (I think that the scroll might have to do with it?) I also tried to make it stop moving down if there is something below its butt.

It would be cool if someone could take a look at this.

 

slightly more commented version

__AI
 if _invisible0 then goto __skipAIball ; he does ! work when invisible
 if !(rand & 127) then goto __skipAIball ;AI makes mistakes

 temp1 = (player1x - 14) / 4
 temp2 = (player1y  -1 ) / 8 
 temp3 = player1y - bally
 temp4 = %00000000
 temp5 = (player1y  + 1 ) / 8 


 if player1score = $c && bally < player1y then gosub __killbranch2 : gosub __firesound
 if player1score = $d then gosub __livesplus2 

 if pfread(temp1, temp2) then _left_right = _left_right ^ 32 : __skipAIball ;make AI dodge branch if any above him
 if pfread(temp1, temp5) then temp5 = 0 ; see if branch below him

 ; Chace missile
 if missile1y < player1y && player1y > 10 then player1y = player1y - 1 else  if player1y < 82 && temp5 then player1y = player1y + 1

 ; dodge coconut (broken)
 if ballx = player1x + 3 && temp3 < 30 then temp4{0} = 1 ;only dodge if coconut is there
 if !pfread(temp1,temp2) then temp4{1} = 1 ; see if nothing above
 ;if !pfread(temp1,temp2) then temp4{2} = 1 
 if !pfread(temp1,temp5) then temp4{2} = 1 ; see if its next to him
 ;if !pfread(25,9) then temp4{4} = 1 

 if temp4 = %00000111 then _left_right = _left_right ^ 32 ; dodge if possible


__skipAIball
__skipAI

MonkeyKing0.23.bas

Edited by Coolcrab
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...