[WIP] Joe 2

Wow. Suddenly its 1992.

I am getting bad flashbacks of interlaced home videos

1 Like

I realised afterwards why my idea wouldn’t work.
It works for the first two render steps, but as soon as the third happens, it’ll introduce tearing because there’s still old frame data on the screen.

Thinking about it further, I suspect tearing will occur using any technique that doesn’t manage to draw a full frame in a single update. (Without hardware double buffering of course.)

Technically it’s a kind of retro.


According to the spec sheet, ST7775R is supposed to have both a VSYNC and HSYNC pin.

Does the implementation in the Pokitto not have that, or is it just not wired up?
Or do they not perform the necessary function?

It isn’t wired, so nothing can be done to help except having a low FPS rate. By increasing FPS you only get more tearing (possibly multiple tears in the same frame). By having a low FPS you give the LCD a chance to display a full picture before writing out a new one.

Edit:
Regarding the emulator, it was possible to not have tearing on it (and at one point there was a build that didn’t tear), but this could result in people making games expecting horizontal movement to look the same on hardware so the current behavior is intentional.

2 Likes

According to the footage, multiple tearing is already happening at 24fps. Your point is right only when the slow framerate is caused by processing time between sending each full frame and not by slow full frame transfer. I guess the extra load for rendering layers (or ‘fillers’, whatever is that) is to blame for the low fps and also the extra tearing. Anyway, I have yet to see a smooth scroll that benefits from lower fps.

True, but if outputting a scanline is too slow then you’ll have tearing even on hardware with V-Sync. And if simply increasing FPS was an option, then obviously writing scanlines isn’t the bottleneck (although it probably is in this particular case).

I didn’t mean it’d produce a smooth scroll, only that low FPS reduces tearing.

1 Like

I don’t even think the screen can be tricked somehow by switching it off during update or anything like that. It just seems very odd that there is more than enought vram on the screen to write off screen but it just doesn’t allow it.

Anyway, current sticking point… I’m trying to remove some unused code that I copy+pasted from the audio routines from the Joe1 game. But it seems doing so causes gfx glitches. For some reason, I currently NEED to have a quite large array in RAM and to test for NOT reading data from a file associated with it and no nothing about it, or else I get problems with my main map array.

It sounds like unintended out of bound writes. A bug that may be difficult to catch, specially if you use some pointers to read/write from/to memory.

In get back to work on this project, I’ll post another alpha version of Joe 2.
The door at the end of the level is supposed to be broken, honest.

Joe_2.rar (4.8 MB)

Let me know what you guys think, should I keep going?

3 Likes

PLEASE do keep going! This feels incredible on the Pokitto hardware. I definitely love these platforming collectathon type games :smiley: So good.

I can try this tomorrow.

1 Like

My framerate limiter doesn’t seem to be working, it shouldn’t go abot 30fps, but it does in some situations.

Say what you will about AI only being the next itteration of predictive text, but it sure can spin a good story…

In the colorless world created by the malevolent magician Hue-Dini, young Joe’s life was devoid of vibrancy and joy. The once-lively landscapes were now shrouded in a dreary monotony, leaving the inhabitants trapped in a desolate existence. Joe, however, possessed an unwavering spirit and an insatiable curiosity that drove him to seek out a hidden adventure.

One fateful day, while exploring a mysterious cave on the outskirts of his dreary village, Joe stumbled upon an old, tattered top hat. Unbeknownst to him, this seemingly ordinary hat held residual traces of magic from Hue-Dini’s ill-fated spell. Intrigued by the hat’s enigmatic aura, Joe decided to try it on, unaware of the transformative power it would unleash within him.

As soon as Joe donned the hat, he felt an electrifying surge course through his body. Suddenly, his surroundings began to flicker with hints of color. The residual magic within the hat had granted him the ability to perceive the world as it once was, filled with a kaleidoscope of hues. Determined to restore color to his world and free his fellow villagers from the clutches of despair, Joe embarked on an extraordinary quest to collect the scattered colored gems.

Guided by an ancient prophecy passed down through generations, Joe ventured through treacherous landscapes, braving enchanted forests, perilous mountains, and riddling caves. Along his journey, he encountered peculiar characters, each with their own tale of loss and longing for the return of color. With each gem he discovered, the colorless world regained a fragment of its former brilliance.

However, Hue-Dini, sensing Joe’s growing power and determination, set forth his minions to thwart the boy’s mission. Joe faced daunting challenges, engaging in exhilarating battles of wits and agility, and drawing upon the newfound magic resonating within him. As he overcame each obstacle, Joe grew stronger, forging an unbreakable spirit fueled by hope and the desire to liberate his world from the clutches of darkness.

Ultimately, Joe’s unwavering determination, coupled with the residual magic within the top hat, would lead him to a climactic confrontation with Hue-Dini himself. In a final showdown of magic and willpower, Joe tapped into the depths of his courage, harnessing the true essence of the colored gems to unleash a radiant burst of light that shattered the evil magician’s spell. The world erupted in a symphony of color, and the inhabitants rejoiced as they witnessed the restoration of their once-drained world.

With his mission fulfilled, Joe emerged as a hero, celebrated for his bravery and selflessness. The world he had saved now thrived with the beauty of color, and the memory of Hue-Dini’s tyranny gradually faded away. Joe’s journey, from a young boy in a colorless world to a champion of light, would forever be etched in the annals of his realm, a testament to the transformative power of hope, resilience, and the magic found within oneself.

image

I think I’ll keep this one.

5 Likes
3 Likes

Awesome! This looks like some Nintendo or Sega game :slight_smile:

3 Likes

I think I found about 30 diamonds and cleared the “Exit” stage :slight_smile: It worked perfectly! I like the feel of the jumping. It feels fair and if I missed that is my own fault. Maybe the game is a bit too easy as I usually do not get that far on the first try.

The gfx, music and sounds are very good. The game looks ready to releasing.

3 Likes

Oh, it needs a lot of work. I need a few levels to be designed, there are still some sprite issues with the 8bit sprites (I think).

The exit stage is going to work a little different, the idea is that it’s only available before collecting all of the gems as a hidden bonus.

I still think we need to find a way to do better sound quality on pokitto, joe2 uses adpcm, which only effectively gets 50% compression (there is no real 8bit adpcm).

2 Likes

You are to much perfectionist :slight_smile: l would only fix the exit stage and add more levels if anything.

1 Like

You do know that Joe games HAVE to be perfect… don’t you?

2 Likes

They’re not just your average Joe! :wink:

6 Likes