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.
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
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.
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
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)
@@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
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!
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.
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“)
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.
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.
@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.
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 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 😂
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.
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
I've been working on a GBA Jetpack Joyride, good to know the RUclips algorithm is doing it's job. This looks fantastic! Great work all around, very cool
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.
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
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
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?
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
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.
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
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…
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.
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.
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!
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
Since that light bit is only set when the gun is pointing at the currently drawn pixel you don't need the white squares; you can just calculate the position for each frame and actually require a slicing motion as well as draw a trail for the sword.
It's fast, but it's not that fast, and not that accurate. What I think you're describing is a light _pen_, which requires special hardware and had a tiny lens held directly on the screen.
Using a sine lookup table for gravity is an odd choice. It's more typical to use a 16 bit number for Y position, a second number for Y velocity, add Y velocity to Y position every frame, and subtract a constant gravity value from Y velocity every frame. Which produces a parabola, but doesn't require a lookup table.
Which NES mapper does this game use? It seems like a CNROM game, but Fceux lists it as an MMC3. I’d like to know since I would like to put this on a cartridge to play on my console.
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… 🙃
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.
@@abxy_real_official_since2020 ok
Gonna test if this works on EmuVR later
Looks great but your orange sprite looks like a chocolate chip cookie.
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
@@solarflare9078 they do tho
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
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
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
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!
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
YES finally! A "i recreated [Blank] in an NES" that's ACTUALLY a nes game!! Loved the video!
yes pics yes friend
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“)
result ninja
This is absolutely amazing!!! I still cannot believe you did this. Cannot wait to see what else you come up with!
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.
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
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.
super underrated project congratulations
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 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 😂
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.
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
Fruit Ninja has an arcade vibe, like it'd work as an arcade game on an arcade cabinet.
There are words for games brought to older systems.
'Demake' and it's an art-form that we don't see enough.
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
I've been working on a GBA Jetpack Joyride, good to know the RUclips algorithm is doing it's job. This looks fantastic! Great work all around, very cool
define your channel's content first
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
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
What I love about this channel is that the 8-bit games are ACTUALLY 8-bit. Most people just use the 8-bit style.
This is so fricking underrated , love your work !
Amazing video !
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.
Deadass hearing someone say they prefer to code anything in assembly is terrifying. Great video, I look forward to you leading the robot uprising.
"it can be written in C but I prefer Assembly" 🗿
This is such a cool project, I'm in love with this.
This channel is so underrated, such a high quality video
I will try this ! Nice to see a modern zapper game 🙂
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
this guy spent so much time just to make NES Zapper actually useful. What a great man.
You call it "Fruit Shinobi" but the japanese title YOU gave it is actually "ka no NINJA", which means "fruit NINJA"!
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!
Super creative an original idea as usual
This is Amazing! Great to see Fruit Ninja in this old video game
generation!
This is awesome! Putting a nostalgic game to a nostalgic console makes is super nostalgic!
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?
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
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
I’ll be hooking up my top loader to a CRT to try this out. Thanks dude!
Hope you keep it up! Would love to see more games like this on real hardware.
The second i heard you say this was going to be in raw assembly i knew this would be a great video
Ooh, I really love this.
Your video deserve much more views, great work 👍🏻
Making a classic phone game into a really old console is crazy and awesome at the same time
Just found your channel. Your videos are amazing. Keep up the great work!. Subscribed!
This is a true masterpiece! Awesome!
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.
I was like "God one of those videos again but it's a real NES gane
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.
THAT WAS FRICKING AWESOME!!!
Oh, a fellow FCEUX apreciator I see
Super cool! Thanks for sharing your process too, really interesting 🤓
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
That's really cool! It also sounds complicated
wejo you made fruitninja for NES that's so fucking cool, much respect bro, you got this.
Nice work! This is really fun!
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…
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.
You should import it to an real nes cartridge and try it out!
can I just say that without a doubt this is one of the best modern-retro games?
YES! Finnaly subtitles!
Amazing work!
Whoa. Great job!
Great job. I love it.
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.
Awesome job! Cant seem to get it to start though. Other zapper games working fine
It never occurred to me to use the light gun for this. Nice.
absolutely amazing!
the peach looks kinda poorly drawn tho lol
but that's still fine! I love this!
This is so cool!
10:05 NIce one man, since those things are real it would be truly ridicoulus to add them xd
This is awesome! The only thing is that the background doesnt quite contrast enough with the fruit
Really cool honestly!
10:04
"A green banana ... Something ridiculous"
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!
wow this is really cool
1:36 i bet, these fruits would have a good personality
5:12 okay, that Jesus moment was awesome
I just played the game. Awesome!
Bro even got the ad for it in that style of the nes eras
Idea
Build A Browser For The NES
Liked This Video And I Liked The NES Cartridge You Made!
I thought the black thing was like one of these "black backround target white cinematic shots" things.
There's really cool. Any it's fruit! I love 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
comment for the algorithm 👍
Since that light bit is only set when the gun is pointing at the currently drawn pixel you don't need the white squares; you can just calculate the position for each frame and actually require a slicing motion as well as draw a trail for the sword.
It's fast, but it's not that fast, and not that accurate. What I think you're describing is a light _pen_, which requires special hardware and had a tiny lens held directly on the screen.
should've made it western themed and called it "fruit cowboy". cuz of the gun.
it’s only a matter of time before this starts showing up on famiclones now
That peach looking extra sus fr
Fruit zapper
Where did you learn 6502
Using a sine lookup table for gravity is an odd choice. It's more typical to use a 16 bit number for Y position, a second number for Y velocity, add Y velocity to Y position every frame, and subtract a constant gravity value from Y velocity every frame. Which produces a parabola, but doesn't require a lookup table.
Would buy in a kickstarter to make the cartridge
Very helpful thanks
Which NES mapper does this game use? It seems like a CNROM game, but Fceux lists it as an MMC3. I’d like to know since I would like to put this on a cartridge to play on my console.
MMC3, it doesn't use any of those features, but I used a template from my last project.
Verry good.
I loved FN on Xbox Kinect