We are Hejickle

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
We are Hejickle
by on (#233122)
A small little roguelike game by me and music maestro MovieMovies1.

ImageImageImage
ImageImageImage

The goal is to progress through the floors by walking onto exits. Killing enemies is optional, but often a necessity as you can't take the stairs when an enemy is adjacent to you. Along the way, you'll collect gems which can be used to purchase items in shops.

  • D-Pad moves. Bump into enemies to attack.
  • Start button is your inventory and ability screen.
  • Hit select to examine things. This is kinda like an in-game help, and can be used almost anywhere including menus.
  • A button casts spells, assuming you have one.
  • B button is multi-purpose. Press and release it to wait a turn. Hold B down and press select to change weapons, press A to change spells, and press the D-Pad to change your facing direction.

There's a handful of little game mechanics involved, so if anyone's confused about something just ask.
Re: We are Hejickle
by on (#233127)
Wow, I'm impressed with how much detail there is. The text quotes about scenery in the level adds a lot of flavor. Well done!

And unlike many roguelikes, it's not impossibly hard out the gate. I'll have to spend some more time on this one soon.
Re: We are Hejickle
by on (#233132)
Wowww. I'm stuck watching the title screen and listening to the song. Love the pattern of the falling particles/leaves and that they're passing in front of/behind the text sorted by colour. Minimalist and very effective.
Re: We are Hejickle
by on (#233139)
Second impression: Love it. Absolutely love it. Very atmospheric. The music does a lot to help, but the characters are well designed and the dungeons moody. The system feels rich with special abilities, status effects and statistics - this is not common on the system.

So far there's just one tiny thing i wish i could do - use D-pad left and right in the encyclopedia (named map?) to cycle through entries.
Re: We are Hejickle
by on (#233141)
FrankenGraphics wrote:
... in the encyclopedia (named map?) to cycle through entries.


The naming of that really confused me also. I spent a few minutes mashing different buttons trying to see an actual map.
Re: We are Hejickle
by on (#233142)
Another thing i really like is that game rules change slightly on the 5th level of each area by providing a bonus if the condition is met. It changes from a game of careful resource management and trying to get all gems and to the exit without losing too much life to a game of risk vs. reward.
Re: We are Hejickle
by on (#233168)
Was able to try the game a little bit and it's good. I recognized right away that the music from the store was inspired from Konami Bayou Billy :D

Since I need to learn about updating a good part of the screen in real time without closing the PPU, I'm curious how is the map field is updated? Does it requires to drop some of the scanline to allows more time in vblank to update it? My very basic testing so far is when you have more than 64 bytes to update, after updating OAM and palettes, it starts to spill outside vlbank and garbage ensue. A complete NSST screen RLE encoded seems not possible without closing the PPU, which causes a small hitch/flicker but in your map, I don't see anything like that.

If it becomes too much explanation we just split the thread. I'm very curious to learn how to improve writing data in real time.

Good work!
Re: We are Hejickle
by on (#233179)
I've briefly messed around with it a little and I really like it, the gameplay is nice and the music is really good. But I just tried it on console, Everdrive, and there are some fairly substantial graphical glitches every time you move, not sure if that is able to be fixed. Here is a clip so you can see what I mean.

https://www.youtube.com/watch?v=f433hhOfEHM
Re: We are Hejickle
by on (#233185)
I assumed it was using the alternate name table for double buffering the background updates, thus scrolling without tearing, but that doesn't seem to be the case. Apparently it uses a sprite 0 hit to disable rendering early and have enough time to redraw the screen.
Re: We are Hejickle
by on (#233193)
WhiteHat94 wrote:
I've briefly messed around with it a little and I really like it, the gameplay is nice and the music is really good. But I just tried it on console, Everdrive, and there are some fairly substantial graphical glitches every time you move, not sure if that is able to be fixed. Here is a clip so you can see what I mean.

https://www.youtube.com/watch?v=f433hhOfEHM


I just tried on my powerpak and see the same glitches there as well, so it's not Everdrive specific.
Re: We are Hejickle
by on (#233198)
As far as I can tell, it looks like OAM is getting corrupted for a single frame?

Rendering is turned off halfway through the frame to update it. And then the sprites are updated by writing to $4014 around scanline 244, without writing to OAMADDR ($2003) first. Since rendering is disabled around cycle 200, it's in the middle of OAM evaluation, and rendering getting disabled means the reset of OAMADDR to $00 from cycle 257 to 320 is not going to run until rendering is enabled again. Which means $4014 is probably getting written to while OAMADDR is in an unknown state? This could probably cause glitches, considering how glitchy everything OAM-related seems to be.
Re: We are Hejickle
by on (#233200)
That's awesome, I love it. I was immersed into it for a while, really nice game.
Re: We are Hejickle
by on (#233217)
Thanks for the feedback everyone! :beer: 8-)

Sour wrote:
As far as I can tell, it looks like OAM is getting corrupted for a single frame?

Rendering is turned off halfway through the frame to update it. And then the sprites are updated by writing to $4014 around scanline 244, without writing to OAMADDR ($2003) first. Since rendering is disabled around cycle 200, it's in the middle of OAM evaluation, and rendering getting disabled means the reset of OAMADDR to $00 from cycle 257 to 320 is not going to run until rendering is enabled again. Which means $4014 is probably getting written to while OAMADDR is in an unknown state? This could probably cause glitches, considering how glitchy everything OAM-related seems to be.

Hmm good hypothesis. I've posted an updated ROM that writes #0 to OAMADDR before each DMA. I don't have a cartridge to test it myself, but hopefully that is the fix.

And yeah, PPU changes happen by disabling rendering around scanline 200 and doing everything before NMI occurs. There is very little buffering involved.
Re: We are Hejickle
by on (#233218)
Yep, appears to be working correctly now on console. I'll definitely let you know if I come across anything else

Actually noticed a small graphical glitch right after I typed this, if you inspect the floor, and get the Carlin quote, there is 1 tile of brick on that screen that is out of place.
Re: We are Hejickle
by on (#233219)
Cool, thanks a ton WhiteHat for testing!

If the bricks are in the upper-right corner of the text box, then that's intentional. It looks a bit odd, but it's showing what's being examined (the floor).
Re: We are Hejickle
by on (#233221)
Aha, yep, that is indeed what it is, makes sense
Re: We are Hejickle
by on (#233242)
Small glitch: Unused sprites should be at Y=EFh..FEh. They are currently at Y=FFh (first scanline). NTSC would usually crop that, but it would be visible on PAL.

I tried the game yesterday and it felt a bit too easy (even without buying or using any extra items). Though today it felt more difficult, and I even managed to die today. I think the difference was that I were killing all enemies one after another yesterday, and tried to pass by enemies without attacking them today.

The falling leaves are really neat - especially in the R.I.P. screen.

Seeing more and more new levels unlocked is also nice.

Don't know if that would fit in: But one could also add puzzle elements, like needing keys or spells to open locked doors or passages. It might slowdown the gameflow though.
Re: We are Hejickle
by on (#233246)
nocash wrote:
Unused sprites should be at Y=EFh..FEh. They are currently at Y=FFh (first scanline).

What? AFAIK, no, Y=$FF does not put sprites at the top of the screen. The wiki also confirms that $FF is a valid Y coordinate for hiding sprites.
Re: We are Hejickle
by on (#233248)
Yes, afaik and a little unfortunately sprites will "pop" when overflowing the y axis (in that they don't wrap around halfway), and you can't put sprites visible on the very first scanline.
Re: We are Hejickle
by on (#233251)
Oops, my specs might be a bit outdated then.
Re: We are Hejickle
by on (#233265)
I'm confused. Can I keep the sprites at Y=$FF, or should I change it?
Re: We are Hejickle
by on (#233267)
i think nocash might've meant that since a sprite is shown on the line below its actual value, a sprite att $ff would show on scanline 0. Or maybe they meant something else: because lines 240-260 (idle line + vblank lines) are padding between lines 239 and 0, a sprite could wrap around just a little on NTSC (but this is masked by overscan), assuming that's how it works*. On PAL or Dendy, the vblank period is longer.

*Then again, i'm not sure if sprites are carried over to the next frame at all. I don't think so, but honestly don't know. The answer is probably somewhere on the wiki.
Re: We are Hejickle
by on (#233268)
Sprites do not wrap on NES. Only the background allows "negative" scroll values, an artifact of treating the attribute table as two rows of tilemap above the top row.
Re: We are Hejickle
by on (#233324)
Submitted and updated the OP with version 3. The changes are minor, but largely regard balance.
Re: We are Hejickle
by on (#233338)
How does armor plate work? once bought, always equipped? Is it possible to stack?
Re: We are Hejickle
by on (#233340)
Very nice music. I notice the "No Weapon" is actually really a weapon? Like I am not allowed to hold "no weapon" in both hands? That seems funny. (Not that I need to... and I'd be tempted to call it a feature not bug for the sake that it amuses me.)
Re: We are Hejickle
by on (#233384)
FrankenGraphics wrote:
How does armor plate work? once bought, always equipped? Is it possible to stack?

Yes and yes. Buy it and it increases your defenses a little.

rainwarrior wrote:
Very nice music. I notice the "No Weapon" is actually really a weapon? Like I am not allowed to hold "no weapon" in both hands? That seems funny. (Not that I need to... and I'd be tempted to call it a feature not bug for the sake that it amuses me.)

Yeah unarmed attacks are implemented as a weapon. It's a bit silly, but that was the easiest way to code it.

Originally there was going to be more reasons to use unarmed attacks, but they were cut due to cartridge size limits.
Re: We are Hejickle
by on (#233742)
Something small, but if you hold Start to start the game, you will get the same starting floor layout every time.
Re: We are Hejickle
by on (#233918)
I just played this for the first time this morning. I find it fascinating. Good work.
Re: We are Hejickle
by on (#233976)
Whoa! This is hands down my favorite compo entry this year. I was a huge fan of Castle of the Winds when I was a kid. I spent hours playing that game. It was a rogue-like, but it used Windows icons for a tileset and was a bit more streamlined compared to other rogue-likes of its time. This is giving me huge vibes of that game, and I love it. Like, I love this. If you ever do a full cart release, it's an insta-buy for me.
Re: We are Hejickle
by on (#234425)
Were the balance changes mentioned there to make the game significantly harder? I see a comment from nocash saying it was too easy, but I found it to be very difficult. Admittedly the rouge-like isn't really my forte, but i was only able to finish the game with save states. It is definitely possible that I'm missing something and accidentally making it more difficult for myself. Really cool game though, a lot of neat features, the in game inspect and help screens with the funny quotes are great. I didn't find ways to take advantage of it really, but the sound mechanic is kind of cool, even stuff like turning out of view tiles black just make the game seem natural. I did see at least one occurrence where the shop menu tiles shifted too far left, but it didn't look like it messed with the functionality
Re: We are Hejickle
by on (#234429)
I've had a weird issue with this game where it regularly acts like I'm pressing right or start when I'm not. It happens more on Nestopia (almost to the point of unplayability), but it's happened a few times on my actual NES/Everdrive too (enough to be odd, but not really affect the game). I remember reading this is a hardware bug or something you have to work around?
Re: We are Hejickle
by on (#234430)
I've only tried it once after the tuning, but yeah, my impression is that it is overall more challenging now. The increase in difficulty is a little nebulous to me, but for one thing, mana potions are harder to come by so you can't do as many mistakes with your spells.


re slembckes' comment, does the game use DPCM sample playback anywhere?
Re: We are Hejickle
by on (#234432)
slembcke wrote:
I've had a weird issue with this game where it regularly acts like I'm pressing right or start when I'm not. It happens more on Nestopia (almost to the point of unplayability), but it's happened a few times on my actual NES/Everdrive too (enough to be odd, but not really affect the game). I remember reading this is a hardware bug or something you have to work around?


I'm guessing by "hardware bug" you're referring to the DPCM glitch, but even if the game used DPCM and didn't handle the glitch it would result in a dropped input not the phantom inputs you describe. I didn't see that issue, but i'm also running on powerpak, so it may not be the same.
Re: We are Hejickle
by on (#234434)
I think HP regeneration was set lower too.
Re: We are Hejickle
by on (#234436)
link_7777 wrote:
even if the game used DPCM and didn't handle the glitch it would result in a dropped input not the phantom inputs you describe.
Unfortunately, if a bit deletion happens, it will cause Right to be pressed.

Also unfortunately, Nestopia's emulation of DPCM DMA cycle stealing is off, and will emulate it at the wrong times, which matters because ...
this game specifically uses the trick of using OAM DMA to synchronize the CPU to the APU clock, which means that DPCM DMA ought to never collide.
Re: We are Hejickle
by on (#234442)
Yeah, the game works around the DPCM glitch by aligning controller reads with OAMDMA and doing multiple reads when reading from PPUDATA.

If these techniques are breaking on actual NESes, that'd be good to know. For testing the controller reads, you can just sit in the middle of a room doing nothing. If the glitch occurs the character will move right on their own.

For testing the PPUDATA reads, the easiest way is to go to the shop menu and hold down for a good minute. The menu graphics will glitch if the PPUDATA read fails.

(and yeah, Nestopia is buggy regarding the DPCM glitch so the game doesn't work with Nestopia)

Quote:
I think HP regeneration was set lower too.

I forget the specifics, but the biggest change was increasing the cost of health potions from 3 to 4. That was done to make purchasing other items appealing.

The other change was a nerf to certain weapons. The starting club was one such nerf.
Re: We are Hejickle
by on (#234443)
I see! i think the HP potion cost increase is a pretty good move. I was pretty keen on trying out spells either way, but i think the hp potions were a bit too good a deal to begin with.
Re: We are Hejickle
by on (#234446)
Some of you were able to beat the game then? Even when I felt like I was doing well I was only able to get through 3 or 4 dungeons
Re: We are Hejickle
by on (#234447)
Haven't beat the game. That's ok as far as i'm concerned, i'm saving it for a rainy day. :)
Re: We are Hejickle
by on (#234469)
pubby wrote:
If these techniques are breaking on actual NESes, that'd be good to know.


Hmm. I'll have to try again on my NES. I _thought_ there were a couple times where it happened, but on Nestopia it's relentless and makes the game unplayable. The Linux and particularly the Mac version of Nestopia are pretty nice, so that's been my emulator of choice. Oh well.
Re: We are Hejickle
by on (#234482)
It is good, but there seems a few bugs.

The bugs I found are:
  • The help for Armory and Log are switched around, and the help for Library and Stages are switched around.
  • If you switch around weapons in the Armory menu and then push the SELECT button to view the descriptions, it will forget that they have been switched around and will switch them back; you have to exit the menu first if you want it to stay.
  • The stage menu will not remember which option is highlighted.

Also some ideas of feature enhancements:
  • Once the game ends, display the score, whether you win or lose.
  • Include a text file with documentation (including what some things mean, which are not quite already clear; also stuff about game rules about figuring damage and so on).
  • Allow reviewing spells, items, weapons, and your own status, on the stage selection menu (perhaps by pushing START).
Re: We are Hejickle
by on (#235349)
I managed to reach the final level of Hell, but then I lost.
Re: We are Hejickle
by on (#235403)
I've been loving this game so much. I especially like how not all areas come up in every run. I haven't been this engrossed in a game for a long time.
Re: We are Hejickle
by on (#237128)
I noticed some ASCII strings in the file which seem to be not used. Would a advanced version be made later which can be larger than 64K (with more areas, character selection, and whatever else it might be)? This file is 64K but I think the mapper it uses supports more than 64K.
Re: We are Hejickle
by on (#237142)
zzo38 wrote:
I noticed some ASCII strings in the file which seem to be not used. Would a advanced version be made later which can be larger than 64K (with more areas, character selection, and whatever else it might be)? This file is 64K but I think the mapper it uses supports more than 64K.


I was planning on doing a cartridge release with a bit more content (different characters, classes, gods, etc). Dunno when that'll happen though.