Hello
Here is an small game I began a little while back , and recently "wrapped it up". The game is meant to be played with the famicom mic, but can be also played in a NES with the joystick. ( "can be played" is in both cases pretty speculative because I had not yet the chance to test it on hardware. By the way, if somebody can confirm that works in real life, I will be very grateful
)
Features music by
Surasshu who did an awesome job.
The concept is based on a famicase entry:
(this one)Messy source included inside the archive: (Now moved to itch.io)
うたいたガールUTACO~「IIコンは世界を救う?!」
In the main game when the lyrics pop up... the SELECT button broke the game as it basically GLITCHES all over the place!
(in FCEUX 2.2.0 at least, Try it out on hardware to verify)
EDIT: I will upgrade to 2.2.1 and try that again!
Thanks for catching it!
It was a left over from a debugging function. Fixed now.
Works fine on USA NES, but on clones it acts as though the "B" button is always pressed during the game. Shows "MISS" above the player the whole time. Using TLROM.
Thakns for trying it!
Maybe the issue on the clone comes from the reads of the famicom's second controller mic, maybe it returns a constant high?
nice game
you did this in 1 month?
Thanks!
No, it was made in the course of about 8 months, but only working on it a little bit every now and then.
I love it! If I get a flashcart I will definitely try out this one on real hardware.
Some constructive criticism: The text appears the same time as it's supposed to be singed so there's no way to know what to sing until it's too late. Unlike karaoke machines that displays the text much earlier. It's also very hard even on an emulator. I can imagine that it would be almost impossible with the mic on real hardware.
Still this is great!
Thanks!
I completely agree on the promptness of the lyrics. I wanted to either display them a little bit before time, or to show two lines, with the following one under the current so you can see what is coming. But I was really tired after all that time and changes on this ugly code require a lot of work (and I just wanted to complete it) so It ended up as it is. Sorry for that
. ( But I learnt a very good lesson the hard way, I'm never coding a NES game again without before making a quick prototype in a comfortable language/environment)
This story: the game, the way you catch the ball from famicase and how the original author of the case design liked your work is epic.
Great win here ! I enjoyed and will certainly try it on my real famicom !
Thanks!
And if you end up being able to try it on a real famicom, I would love to know how the mic input works. (How I wish I could have one to test it myself)
I really enjoy seeing all the Rhythm Tengoku influence, both in gameplay and art style! Is all of the music composed for this game specifically?
If I was to make a cart to play it on my famicom, I'm assuming it detects volume in place of the B button?
Please, do make it so the lyrics show early though; I already have a hard time quickly reading hiragana and having them not show up early makes it more than impossible...
You can use either the mic or the B button in this game. There's no input for the volume. The mic basically just works as a button, it detects sound (if it's turned on) and sends a signal to the game just like a button press. It can't detect level of tone or such things so no need to sing beautifully.
About the lyrics, the only way currently is to learn the lyrics by heart. I hope for an update with proper karaoke-style lyrics though.
Pokun wrote:
You can use either the mic or the B button in this game. There's no input for the volume.
About the lyrics, the only way currently is to learn the lyrics by heart.
Volume slider is a analog circuit which actually controls the level of signal which gets sent to the Famicom. So it will affect the waveform the game program will be able to detect.
Considering that, the volume slider will affect what the game detects so you can't really say the volume slider does not matter.
l_oliveira wrote:
Pokun wrote:
You can use either the mic or the B button in this game. There's no input for the volume.
About the lyrics, the only way currently is to learn the lyrics by heart.
Volume slider is a analog circuit which actually controls the level of signal which gets sent to the Famicom. So it will affect the waveform the game program will be able to detect.
Considering that, the volume slider will affect what the game detects so you can't really say the volume slider does not matter.
I think he means that the famicom can only hear the microphone as "sound" or "no sound", so what one sings does not affect how the game will play.
As I understand it, the mic input bit is set when the microphone input goes over a certain threshold. And also the mic input gets mixed with the APU output. So the volume slider would only lower the ammount of samples that go over the bit activation threshold, and also result in a quieter final output in the mix.
That being said, is just my understanding. As sad as it is, I couldn't find any definitive documentation about it and the lack of a real unit makes testing impossible.
zlash wrote:
As I understand it, the mic input bit is set when the microphone input goes over a certain threshold. And also the mic input gets mixed with the APU output. So the volume slider would only lower the ammount of samples that go over the bit activation threshold, and also result in a quieter final output in the mix.
That being said, is just my understanding. As sad as it is, I couldn't find any definitive documentation about it and the lack of a real unit makes testing impossible.
I have the schematic of RF Famicom, and it looks like that is what it will do. The cartridge could mute this audio, although I don't know of any that does.
zlash wrote:
As I understand it, the mic input bit is set when the microphone input goes over a certain threshold. And also the mic input gets mixed with the APU output. So the volume slider would only lower the ammount of samples that go over the bit activation threshold, and also result in a quieter final output in the mix.
Yeah that's what I thought as well. The wiki said that you read the mic from the $4016 adress so I made a program in Family Basic (currently my only way of running my own code on my Famicom) like this:
Code:
10 PRINT PEEK(&H4016);
20 GOTO 10
This program keeps printing the value in $4016 forever. That value is normally 64, but whenever I blow into the mic it changes to 68 until I stop blowing. Knowing this I can make programs in Famibe that detects "sound" or "no sound". But how can a game detect different waveforms?
mikejmoffitt wrote:
I think he means that the famicom can only hear the microphone as "sound" or "no sound", so what one sings does not affect how the game will play.
Yes, but the volume slider will affect what the famicom considers 0 or 1 as we're dealing with voltages and signal levels ...
Edit and obviously what people sign causes signal to change, the game can sort of identify what is being sung ... haha
Utaco is not the first game to do it, you know ...
If you sample that bit periodicaly, you can obtain a rectangular waveform from the mic. xD
Unluckly, a game cannot detect "waveforms"; as I assume you are refering to; with the famicom mic.And even if you were able to find a way to construct an useful representation of the waveform, I doubt you would be able to do much processing/analysis on it with the dear 6502.
zlash wrote:
If you sample that bit periodicaly, you can obtain a rectangular waveform from the mic. xD
Unluckly, a game cannot detect "waveforms"; as I assume you are refering to; with the famicom mic.And even if you were able to find a way to construct an useful representation of the waveform, I doubt you would be able to do much processing/analysis on it with the dear 6502.
You can scan for the "pauses" from the changing of the bit. Of course it would be something really simple tied to the interrupt.
That weird game from Taito has one part where you had to sing a song.
I updated the ROM file. Now it attepmts to show the lyrics a little bit before time to allow better reading.
It doesn't work with all lines though, and it may have introduced unknown problems into it (who knows), but I hope it helps.
OK now I see what you mean. The volume slider is usefull because you can turn it off so the mic won't react to background noise when you are not using it. But the game can't tell the slider's state.
At Famicom World we have the most complete list of Famicom games that supports the mic n English that I know about. Some of them retain the mic function in the NES version but not all.
http://www.famicomworld.com/forum/index ... pic=2355.0Zlash I tested the update and now it's much better. There are still some spots that doesn't show the lyrics in advance though.
You might be able to make more than 1-bit audio from the microphone if there is a analog-to-digital converter in the cartridge; unless you also want it to read the audio generated by the game, you will need to use expansion audio for the game's music instead, however.
That's interesting. Wouldn't work in most emulators though if they don't start supporting a mic input from a real mic.
Zlash I finally picked up an everdrive and I tested your game on my Famicom. I finished it to the end, and it wasn't as hard as I previously thought. I guess I played it on a slow emulator/computer before. However I couldn't get the mic to work, although it works in other games that supports it.
I must say I love the music in this game though.
Thanks for testing it!!! It's sad to hear that the mic part doesn't work. Nestopia is the only emu I know with mic support and it works there, but I should guess that is mostly a hack. Nothing ever happens with mic input? Not even triggers a miss? How I wish I had real hardware to test
And as for the music, everything this thing lacks as a game, its compensated with good tunes. Surasshu makes cool stuff
It didn't even triggered a miss as far as I remember. It was a while ago I tested though and I'm going to test it some more later.
Yeah the music is so addictive, but I think it's a cool game considering the circumstances!
OK I tested this game again and it seems that the mic in fact
DOES work! But I don't know if it's my mic that's bad but it's not really possible to get even close to a decent score with the mic. It's not exactly over-sensitive.
This code worked for me but I doubt it would make any difference in your game.
Code:
Mic EQU $20
ReadMic:
lda $4016
and #%00000100
sta Mic
rts
It's the code that seems to be used by most people, and a BASIC variant of it is used in Family Basic V3. I don't know what other official games use though.
Thanks for the update!!
I heard that the mic was oversensitive so I did something werid to get something decent. Obviously , without access to hardware it was kinda pointless because it was just a guess. I don't even know why I thought it would help back then. I guess its just another proof of being a bad programmer
What I'm doing is the following:
- Set a mic_input flag to true.
- Then, when I read 8 times $4016 to fill the byte with joystick status, I check everytime the microphone bit. If I find a 0 in one of those 8 reads, I set mic_input to false
Truth be told, I don't even know if the mic bit is able to change that fast. But maybe this has something to do with it.
Aha that's why I had to empty my lungs to max to just make the bar fill up a tiny bit. Even with the routine I posted I can make a sprite move only slowly. Maybe the mic was over-sensitive 30 years ago when it was new, but all mics I've tested have been like this.
Necroposting because it seems the original download link is dead (I had to search for "utaco.zip" to find it). Since the thread was brought up elsehwere, here's a mirror if somebody now wants to try the game:
http://sik.titandemo.de/.junk/utaco.zipAlso, no NSF files =| Looks like one could build a NSF by adding the relevant header, but not feeling like trying that right now.
Thankfully a NSF of the soundtrack was submitted to Famicompo 9:
Thanks for your interest!
NovaSquirrel won me to the link for Surasshu's submission to FC.
And as for the game, I lost my domain after stopping paying to our local network agency who manages TLDs
.
For now I uploaded the last version of the file to itch.io:
http://zurashu.itch.io/utaco
Really loved this game, too bad it's short only.
Or is it still being worked on?
Would love to see more!