Entry Thread - Karate Kick

Moderator: Moderators

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Entry Thread - Karate Kick

Post by mikejmoffitt » Wed Feb 01, 2017 11:19 am

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 413 times
Screenshot from 2017-02-01 10-17-30.png
Screenshot from 2017-02-01 10-17-30.png (6.7 KiB) Viewed 11356 times
Screenshot from 2017-02-01 10-18-00.png
Screenshot from 2017-02-01 10-18-00.png (9.21 KiB) Viewed 11356 times

User avatar
rainwarrior
Posts: 7669
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: Entry Thread - Karate Kick

Post by rainwarrior » Wed Feb 01, 2017 11:27 am

:)

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

User avatar
pubby
Posts: 542
Joined: Thu Mar 31, 2016 11:15 am

Re: Entry Thread - Karate Kick

Post by pubby » Wed Feb 01, 2017 11:46 am

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.

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Wed Feb 01, 2017 12:12 pm

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.

na_th_an
Posts: 543
Joined: Mon May 27, 2013 9:40 am

Re: Entry Thread - Karate Kick

Post by na_th_an » Wed Feb 01, 2017 4:29 pm

I really like the visual style. Plays great too!

tepples
Posts: 21748
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Entry Thread - Karate Kick

Post by tepples » Fri Feb 24, 2017 7:23 pm

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.

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Wed Mar 01, 2017 1:33 pm

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.

JRoatch
Formerly 43110
Posts: 388
Joined: Wed Feb 05, 2014 7:01 am
Location: us-east
Contact:

Re: Entry Thread - Karate Kick

Post by JRoatch » Sat Apr 08, 2017 9:51 pm

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.

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Mon Apr 10, 2017 3:46 pm

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.
Attachments
kkick.nes
(40.02 KiB) Downloaded 347 times
Last edited by mikejmoffitt on Mon Apr 10, 2017 3:53 pm, edited 1 time in total.

User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Entry Thread - Karate Kick

Post by Myask » Mon Apr 10, 2017 3:51 pm

This is a port of a little game I made for iOS about five years ago
Inspired by Warioware: Twisted?

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Mon Apr 10, 2017 3:53 pm

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.

User avatar
Memblers
Site Admin
Posts: 3770
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Entry Thread - Karate Kick

Post by Memblers » Mon Apr 10, 2017 3:56 pm

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.

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Mon Apr 10, 2017 4:08 pm

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

User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Entry Thread - Karate Kick

Post by Myask » Mon Apr 10, 2017 4:10 pm

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.

User avatar
mikejmoffitt
Posts: 1348
Joined: Sun May 27, 2012 8:43 pm

Re: Entry Thread - Karate Kick

Post by mikejmoffitt » Mon Apr 10, 2017 4:47 pm

Fixed those small bugs. Let me know if that helps anything.
kkick.nes
(40.02 KiB) Downloaded 385 times

Post Reply