I Made Fruit Ninja Into a REAL 8-Bit NES Game
ฝัง
- เผยแพร่เมื่อ 16 ก.พ. 2023
- I recreated Fruit Ninja as a real 48KB NES program, fully compatible with the NES Zapper. Using 6502 assembly, I cover some solutions to the constraints of the Nintendo Entertainment System, including the limitation of 64 sprites, 4 color palettes, and background creation. Also covered is a deep dive into how the NES Zapper works and how I implement it into my program. Fruit Shinobi is available to download now to run on the NES, Famicom, or your favorite emulator.
Try it for yourself at: notin.tokyo/fruit
Relevant NESdev page:
www.nesdev.org/wiki/Zapper
How the Nes Zapper in FCEUX
github.com/TASEmulators/fceux...
Other Interesting NES forum discussions I found:
archive.nes.science/nesdev-fo...
archive.nes.science/nesdev-fo...
Zap Ruder in particular is interesting as it does a real time calculation of where the zapper is looking on the screen, turning it into a fairly accurate cursor.
pineight.com/nes/#ruder
Disclaimer:
The game "Fruit Shinobi" is a unique title. The story, all names, characters, and incidents portrayed in this production are fictitious. No identification with other games (living or deceased), places, buildings, and products is intended or should be inferred.
No fruit was harmed in the making of this game. - วิทยาศาสตร์และเทคโนโลยี
This is awesome! Our Fruit Ninja devs love it and give it a huge thumbs up!🥷
20 likes and no replies?Here I am Halfbrick
9+10?
I love your games so much! Recently started obsessively playing Jetpack Joyride, Dan the Man and Fruit Ninja classic again recently lol
IS THAT THE REAL DEVS?!
Damn, you should do a licensing partnership and sell actual cartridges! I’d buy one if I had (or get…?) a light gun… 🙃
Looks great but your orange sprite looks like a chocolate chip cookie.
I agree
Cookie Fruit confirmed. Illuminati.
Guys, this is the NES. Give him a break.
“THIS… LOOKS LIKE… A FOCKIN… CHOCOLATE CHIP COOKIE!”
In all seriousness, I don’t think good looking oranges are really all that possible. The oranges in PAC-Man, even in the arcade game, didn’t look all that better
1:20 It's worth noting that Kirby's Adventure actually used 8x16 sprites for Kirby, so he only consisted of 2 sprites (when he wasn't puffed up, in which case he uses 6)
im pretty sure thats kirbys dream land, not adventure
@lurkathon I tested it in an emulator, this is the case for Adventure
@@therealohead ok
Really cool clone. It's like Fruit Ninja was meant to be a light gun game.
One problem, as the game requires a CRT to play with an actual light gun controller, the HUD elements are too close to the edge of the screen, meaning they will be cut off on most NTSC CRTs.
Yeah, even in the original Duck Hunt, the score and ammo UI have a border and some padding from the edge around the elements. Shouldn't be too hard to do something similar for Fruit Shinobi's score and life counter.
It’s cool seeing you here
ouch...
as a US citizen, I mostly use NTSC televisions. However, I don't affiliate my nationality with any country.
@@abxyabxy281 ok
Gonna test if this works on EmuVR later
The way the screen turns black and the fruit being sliced afterwards really looks like those shots in Animation, where someone slices something in half without seeing it directly, it's a cool stylistic coincidence!
FINALLY, SOMEONE who doesn't do that "So Retro" art style that everybody is getting tired of, and attributing it as a "NES game"
Hell, sometimes it straight up looks like an early SNES or even a 32X or PS1 game like just cut the bullshit 💀
@@tammid8423, even though I plan on not using older technology, I want to try to use very limited colors when I make my game.
@@PKSuperStar256 based
@@tammid8423, thanks.
FRFR idc if i sound like s nerd
This vid getting less than 1k views is a crime! I'm actively subbed to 200 people and I catch myself genuinely just looking forward to the next vid you create, I seriously don't understand how this gets less views than some of the bigger guys.
what are you saying this video sucks
NEWS: Video passes 16K view "still a crime this doesn't have 50K" says man
@@Lo-Sir Damn right 😎, vid seems to be a slow burner so it'll get there in a while
Amateur
@@AverageMichaelJordanslol it has 100k now
Finally someone who ACTUALLY makes their "NES game" into a....NES game, most people just make 8-bit graphics without considering any of the limitations they had on the NES.
I remember this "NES Mario Odyssey" which had rotating sprites, widescreen, insane amounts of sprites on the screen at the same time and so on.
i watched that video lmao
well it at least had the cool thing of how it still had limited controls as if it was an nes, but yeah i agree
Yep, it broke so many rules of the system that I was losing my mind. I would have excused the multiple sprites, but ONLY if the limited color rule was legitimately applied
So retro 💔
@@JamesTDGjames spotting #4
YES finally! A "i recreated [Blank] in an NES" that's ACTUALLY a nes game!! Loved the video!
yes pics yes friend
thank god you made this a real nes game. i hate people who say they made a full nes game but its only an 8 bit game instead of a full nes rom
Even then it's only "8-bit" in sense of pixel art, it isn't running on an 8-bit computer. But stay tuned, I have some plans for other games...
@@InkboxSoftware i also overall really enjoy your videos, even if i don't plan to make nes games (i would make a rom hack at most) these are all really good and entertaining in terms of education
@@InkboxSoftwarewait, this isn't a real NES ROM? So why all the technical information about how the NES works?
@@augustleded I meant other "8-bit" style games don't run on 8-bit computers. Fruit Ninja for NES is a real NES rom that runs on the 8-bit NES.
@@InkboxSoftware yeah that makes sense
You can do hit detection on all fruit in 4 frames or less by using a binary search instead of a linear search. (Flashing half of the sprites at once to eliminate 50% of targets per frame, instead of eliminating 1 sprite at a time with your current linear method).
You may be able to reduce this further by analysing aiming trends (spatial or temporal) and skewing the elimination percentage towards the trend, for faster average detection of hits at the cost of more flash frames to detect misses.
E.g. players might aim more often at the most- or least-recently launched fruit, or fruit at the top of its arc. Check that fruit first by itself, or the top 2, then use binary search from there. If you can identify a consistent trend and predict the most likely 1 or 2 fruit targets, you can save 2 or 3 frames when your prediction is correct, at the cost of an additional frame for misses/bad predictions.
We're working with a 6502 here.
@TheBcoolGuy Yes, i realise that. This can be done with minimal code using some simple old-school binary tricks that a 6502 will have no problem with. I started coding games on Z80 and used similar techniques for sprite sorting/priority, so it's certainly doable on 6502.
yeah i was thinking this too
with 8 fruits it could be done in just 3 frames, by flashing 11110000, 11001100, 10101010
but the problem is that this would break if you hit multiple fruits at once
@@12... I think a ternary search would actually be better: start with 11100000, 00011100, and 00000011, and then scan whichever individual sprites are needed after that.This would scan three frames in the no-hit case, six in the one-hit case, a maximum of nine in the two-hit case, and eleven in the three-hit case. Note that getting a trigger on 11110000 but none on 11001100 doesn't mean the third or fourth fruit was hit. It could be that one barely hit one of the first two sprites.
You're going to kill the CPU.
You can reduce the number of frames spent checking for light detection from linear to log(n) by lighting up multiple fruit per frame such that the pattern of light detection uniquely identifies the fruit's index.
This is absolutely amazing!!! I still cannot believe you did this. Cannot wait to see what else you come up with!
i thought this would be moving the blade around with the d-pad (which would have sucked), but what a great way to use the zapper! :D
Wooow, the quality, the code, the love. All amazing. Watching your videos has been so rewarding. I've learned a ton and in a fun way. Thank youuu and keep your amazing work up!
I love how the English romanization of the title says „Fruit Shinobi“ but the Japanese title still says „Fruit Ninja“ (Even tho fruit is technically果物 and 果 alone just means „result“)
Just found your channel. Your videos are amazing. Keep up the great work!. Subscribed!
This is so fricking underrated , love your work !
Amazing video !
This channel is so underrated, such a high quality video
It's so cool to know that awesome people like you are still creating video games for the NES. Such an iconic console. I have never seen one in person, but I have played a few games on emulators before. I first got interested in the NES from watching AVGN, seeing as that console makes an appearance in most of his episodes. It's really amazing to see what it is capable of.
Super cool! Thanks for sharing your process too, really interesting 🤓
This is such a cool project, I'm in love with this.
super underrated project congratulations
I love seeing others remaking modern games for retro consoles! Someone recently made a game for GBA called something super pets it was a fun venture this should be a game jam contest 😂
Super creative an original idea as usual
Hope you keep it up! Would love to see more games like this on real hardware.
Your video deserve much more views, great work 👍🏻
This is awesome! Putting a nostalgic game to a nostalgic console makes is super nostalgic!
Nice work! This is really fun!
I will try this ! Nice to see a modern zapper game 🙂
Great job. I love it.
The second i heard you say this was going to be in raw assembly i knew this would be a great video
THAT WAS FRICKING AWESOME!!!
This is a true masterpiece! Awesome!
I've been working on a GBA Jetpack Joyride, good to know the TH-cam algorithm is doing it's job. This looks fantastic! Great work all around, very cool
define your channel's content first
Amazing work!
This is Amazing! Great to see Fruit Ninja in this old video game
generation!
10:47 p.oooo I like that! It's simple! Creative! The colors, I really like how the colors vibrate, and kind of are at the same level but different
a 0.15 second blank is a little much for every time you fire
I recommend using a system where you only check if SOMETHING was shot and if so then see what it was, adds 2 frames when you shoot something, but removes 7 when you miss
Your idea is good, but that feels like it would punish good players since they would hit fruit more often than miss, resulting in +2 frames more often than -7.
@@InkboxSoftware In theory--if you had more time and memory--you could calculate fruit-overlap, build a (potentially huge) list of "strikeable" objects which are either fruit or fruit-overlaps, and then use a binary search to detect a hit.
Naively, I think overlap regions grow like 2**n, so 8 fruit perfectly arranged would require as many as 255 strikables. But the binary search would cut that down to just 8 checks.
Then you would benefit from fewer than 8 checks for all of the not-worst-cases.
Awesome job, man. This is great, I love seeing new games being made for classic systems, especially lightgun games. I confirm this works well with a Sinden Lightgun, which I use with a Raspberry Pi 4B running Retroarch and lr-FCEUmm. If you revisit this game for an update, might I suggest adding a "pause" function?
Ooh, I really love this.
Really cool honestly!
I’ll be hooking up my top loader to a CRT to try this out. Thanks dude!
A while ago I remember seeing an OLD OLD NES back of DUCK HUNT and it was like a rlly simple version like this! Except the sprite was like a mario sprite throwing the bombs instead of the ducks, it was rlly cool. Sadly I think it’s been lost to time
Whoa. Great job!
That's really cool! It also sounds complicated
Awesome job! Cant seem to get it to start though. Other zapper games working fine
this is seriously amazing!
I just played the game. Awesome!
This is so cool!
Deadass hearing someone say they prefer to code anything in assembly is terrifying. Great video, I look forward to you leading the robot uprising.
Can someone PLEASE load this up onto an NES cartridge and show it working on real hardware? I really want to see it!
With the help of an everdrive we can do it
i might try it out i have a sanni oscr and a crt
@@gamagama69we’d all love to see it!
@@Sempnite Fruit Ninja for the NES - But does it work on Real Hardware?
@scratcher7544 To answer that, Yes it works on real hardware
this guy spent so much time just to make NES Zapper actually useful. What a great man.
it would be cool if you did a whole series of turning popular phone games to nes games
Things are in the works...
@@InkboxSoftware awesome, looking forward to them
As a retro gamer, I found this video to be super amazing. I ABSOLUTELY loved that you included NES limitations
That's because it is an actual NES game
There are words for games brought to older systems.
'Demake' and it's an art-form that we don't see enough.
i love the idea of making modern games in NES! i've actually been thinking about how Subway Surfers could be done, although i definitely don't have the technical skill or knowhow to do it myself
I think subway surfers could be pulled off. It wouldn’t be far off from 3D world runner!
YES! Finnaly subtitles!
Fruit Ninja has an arcade vibe, like it'd work as an arcade game on an arcade cabinet.
wow this is really cool
You’ve enlightened me greatly by putting one of my favorite games on the NES. Great job! I’d love to see a 7800 version as well, even more sprites with even more color! Though I don’t think you’ve coded that or it’s light gun before…
wow, so cool!
wejo you made fruitninja for NES that's so fucking cool, much respect bro, you got this.
Oh, a fellow FCEUX apreciator I see
Fun. Kudos.
Looks nice.
For a better game perception you should change your background, bot decrease its saturation and contrast. Also using a different colors for background other than fruits color is a must.
There's really cool. Any it's fruit! I love fruit
Making a classic phone game into a really old console is crazy and awesome at the same time
absolutely amazing!
the peach looks kinda poorly drawn tho lol
but that's still fine! I love this!
I need to find a way to make this thing run on a wii in a similar way to duck hunt, seems very fun!
I'll have to try it on the real hardware! I love the light gun games.
Very cool!!!
This may seem super trivial but it'd be cool to see a candy mode, based on Fruit Ninja Skittles from back in the day. I love the work seen here. GG.
my favourite demake of fruit ninja is for ti84 calculator where they made all the buttons a faux capcitive touch input so you could actually slice directionally depending how you wiped your finger across it
Idea
Build A Browser For The NES
Liked This Video And I Liked The NES Cartridge You Made!
Technically if you want you can use the first controller as a master input device, add a credit system into the game and assign a button to be Credit++ you can enclose it into an arcade machine and use a coin slot for input
Awesome!!!
Okay, there’s this program called EmuVR which lets you play retro games in VR. Fruit Shenobi works in EmuVR. I’m playing a game from 2010 on a console made in 1986 in technology from 2020. This is the future.
"it can be written in C but I prefer Assembly" 🗿
It never occurred to me to use the light gun for this. Nice.
I'd increase the size of the white boxes for shooting. In the context of clicking the screen in an emulator this is perfectly fine, but I feel on the NES with a real zapper it would be too hard to hit the tiny fruits.
That said, this is absolutely awesome.
10:05 NIce one man, since those things are real it would be truly ridicoulus to add them xd
Verry good.
I loved FN on Xbox Kinect
Would buy in a kickstarter to make the cartridge
This is awesome! The only thing is that the background doesnt quite contrast enough with the fruit
7:31 I am actually built differently. I see CRT screens half a frame at a time, more noticeable the brighter the screen is. very annoying, but I've learnt to live with it
yeah the flickering on white screens are annoying as hell. luckily i only see flickering on PAL screens so i just use NTSC
@@doomertheboomer I see it on NTSC
I was like "God one of those videos again but it's a real NES gane
I'm getting into programming, mostly web dev, and I'm blown away by your knowledge and intelligence when it comes to programming. If you were to learn it all again, where would you start?
Everyone has to start somewhere, I began with BASIC.
You know what would be cool? If you used two gun shots like a knife. First, you select the start point, then the second point. After that an object slides from the spawn point to the target point and finds whichever fruits it hit.
You could probably get a knife feeling from that. Maybe add a timer so the time between two trigger pushes is short enough.
I don't think that's how the light gun works. It only detects light, it doesn't relay where it's pointing at the screen. I don't think you can detect the gun's position.
5:12 okay, that Jesus moment was awesome
You should import it to an real nes cartridge and try it out!
Bro even got the ad for it in that style of the nes eras
Reminds me of the time I tried to make jetpack joyride on the 2600 and ran out of memory. (I didn't know about bank switching).
I had an idea for the swords you could unlock.
How about you change the sound of the fruit being shot.
can I just say that without a doubt this is one of the best modern-retro games?
It'd be amazing if you added the powerup bananas from arcade mode!
-Ice banana and double point banana should be easy, but the frenzy banana would probably be impossible to recreate..
The giant pomegranate would be cool at the end too! It would test your trigger finger by making you pull it as fast as possible!
And combo multipliers to reward fast shooting!
nice! i like it. now we have fruit ninja on nes and questionably legal angry birds. i wonder if a more well made angry birds game could be made for the nes.
holy crap i was about to click "not interested" because i thought it was also one of those fake "made a game for the NES" when it was unity or whatever. you're the goat for this
Now I know that old video games are only for Japan
but you are good 👍
Question: how do you identify which fruit is the one being detected by the gun specifically?