Page 1 of 2

Entry Thread - Karate Kick

Posted: Wed Feb 01, 2017 11:19 am
by mikejmoffitt
Well, here's my dinky entry, which I suppose is my first actual NES game. I would have liked to put something more together, but I had a lot going on towards the end of the competition timeline, so here we are.

Fun fact: about half the ROM space is DPCM samples, and some of that is direct PCM used for one sound where I wanted a specific frequency response.

Code: Select all

Karate Kick
By Michael Moffitt
------------------

This is a port of a little game I made for iOS about five years ago under the
same name. It is a very simple arcade-style game that gets progressively more
difficult as time passes. The player controls a karate master (who only kicks?)
in the center of a dojo, defending against many identical goons who seek a
challenge.

Fortunately, your karate master is so skilled that if he is even looking at an
opponent, the opponent is sure to fall. All you must do is use the d-pad to
turn the karate master towards an incoming enemy. If he's facing the enemy,
he will be victorious. Do not allow an enemy to strike the master's sides or
back.

This entry was thrown together rather hastily, developed mostly on two long
plane flights, as the original entry grew too large and would have no place
on the mluti-card.

The code is available at https://github.com/mikejmoffitt/kkick

kkick.nes
(40.02 KiB) Downloaded 528 times
Screenshot from 2017-02-01 10-17-30.png
Screenshot from 2017-02-01 10-17-30.png (6.7 KiB) Viewed 14163 times
Screenshot from 2017-02-01 10-18-00.png
Screenshot from 2017-02-01 10-18-00.png (9.21 KiB) Viewed 14163 times

Re: Entry Thread - Karate Kick

Posted: Wed Feb 01, 2017 11:27 am
by rainwarrior
:)

The CHR layout is curious. What led you to organize it that way with such irregular gaps?

Re: Entry Thread - Karate Kick

Posted: Wed Feb 01, 2017 11:46 am
by pubby
I like it a lot. Once it picks up speed it really evokes that feeling of flow where you're not really thinking of anything and your movements are subconscious.

Image

First score: 352
I'll probably put this on my Wii and actually play it once in awhile.

Re: Entry Thread - Karate Kick

Posted: Wed Feb 01, 2017 12:12 pm
by mikejmoffitt
rainwarrior wrote::)

The CHR layout is curious. What led you to organize it that way with such irregular gaps?
For the BG section, I more or less draw the backdrop in the CHR directly, then removed duplicate tiles. Later on as I made more things, I just threw them in the gaps when I needed to.

For the sprites, I would draw a single character graphic, then chop it up and shift sections around to save tiles, or remove tiles that were duplicates with other frames. You can actually see a few of the original iOS game's sprites in the lower-right. I marked unused tiles with X graphics so I'd know what is clearly available versus part of a sprite.

Re: Entry Thread - Karate Kick

Posted: Wed Feb 01, 2017 4:29 pm
by na_th_an
I really like the visual style. Plays great too!

Re: Entry Thread - Karate Kick

Posted: Fri Feb 24, 2017 7:23 pm
by tepples
I noticed that B580-F2FF is EA-filled. Is there anything you can cut to free up about 640 bytes to fit it into NROM-128? That might let us add more Category 2 stuff.

Re: Entry Thread - Karate Kick

Posted: Wed Mar 01, 2017 1:33 pm
by mikejmoffitt
tepples wrote:I noticed that B580-F2FF is EA-filled. Is there anything you can cut to free up about 640 bytes to fit it into NROM-128? That might let us add more Category 2 stuff.
It's not fitting in NROM-128 without removing the sound samples, which isn't worth doing. Given until the end of March, I'd like to tidy it up a little and add a little polish, so the free space may be better justified.

Re: Entry Thread - Karate Kick

Posted: Sat Apr 08, 2017 9:51 pm
by JRoatch
This applies to both the first compo version and the latest version posted in the compilation thread

If you hold Start while the game boots (either by holding start from the action 53 menu or by console Reset as a standalone ROM) the game will begin with *no* baddies coming at you at all. This bug is dependent on some uninitialized RAM value, so first start Brick Breaker or something to reliably trigger it.

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 3:46 pm
by mikejmoffitt
Uh oh, thanks for letting me know. I'll add a short delay to prevent starting the game immediately.

Please let me know if this fixes it.

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 3:51 pm
by Myask
This is a port of a little game I made for iOS about five years ago
Inspired by Warioware: Twisted?

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 3:53 pm
by mikejmoffitt
Myask wrote:
This is a port of a little game I made for iOS about five years ago
Inspired by Warioware: Twisted?
Sorry, haven't played it.

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 3:56 pm
by Memblers
I also noticed this game seems to have some uninitialized RAM problems or something. Just putting it on a plain NROM board, the title screen was randomly messed up, partly scrolled off the screen and/or with wrong colors. But sometimes it was fine. And I saw the wrong colors carry over into the game itself at least one time.

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 4:08 pm
by mikejmoffitt
Memblers wrote:I also noticed this game seems to have some uninitialized RAM problems or something. Just putting it on a plain NROM board, the title screen was randomly messed up, partly scrolled off the screen and/or with wrong colors. But sometimes it was fine. And I saw the wrong colors carry over into the game itself at least one time.
Strange. The first thing it does is initialize all RAM.

The game is open here, if anyone wants to have a look and identify an obvious problem with my init:

https://github.com/mikejmoffitt/kkick

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 4:10 pm
by Myask
mikejmoffitt wrote:
Myask wrote:
This is a port of a little game I made for iOS about five years ago
Inspired by Warioware: Twisted?
Sorry, haven't played it.
https://youtu.be/kTlRy3pdVaw?t=390 few videos of the gameā€¦and the one I could find is no good at this particular minigame. (Then again, there are, apparently, a record number of subgames in Twisted.)

Code: Select all

@waitvbl1:
	lda #$80
	bit PPUSTATUS
	bne @waitvbl1
could be

Code: Select all

@waitvbl1:
	bit PPUSTATUS
	bpl @waitvbl1
and

Code: Select all

@clrmem:
	sta $000, x
	sta $100, x
	; Reserving $200 for OAM display list
	sta $300, x
	sta $400, x
	sta $500, x
	sta $600, x
isn't clearing $700-$7ff, on a short inspection.

Code: Select all

.macro ppu_load_scroll cam_x, cam_y
	bit PPUSTATUS
	lda cam_x
	sta PPUSCROLL
	lda cam_y
	sta PPUSCROLL
	; Clamp scroll values
	lda xscroll+1
	and #%00000001
	sta xscroll+1
	lda yscroll+1
	and #%00000001
	sta yscroll+1

	lda ppuctrl_config
	ora xscroll+1	      ; Bring in X scroll coarse bit
	ora yscroll+1	      ; Y scroll coarse bit
	sta PPUCTRL		     ; Re-enable NMI
.endmacro
Found one bug: This macro is putting both nametable selects on bit 0, which is wrong.

Re: Entry Thread - Karate Kick

Posted: Mon Apr 10, 2017 4:47 pm
by mikejmoffitt
Fixed those small bugs. Let me know if that helps anything.
kkick.nes
(40.02 KiB) Downloaded 517 times