ROB homebrew

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
ROB homebrew
by on (#131336)
I couldn't find any info about R.O.B. on the wiki and the only homebrew I've found that uses ROB is this Atari homebrew here http://atariage.com/forums/topic/190214 ... try2406378.

UglyJoe at Famicom World managed to make a working ROB controlling program in Family Basic, and shared it here: http://www.famicomworld.com/forum/index ... pic=9691.0.
I used his ROB controlling routine to make a simple test program homebrew (download in attachment). I tested it on my Everdrive and with my Famicom Robot and all ROB commands works, but there are still at least three problems:

1) When flashing a command to ROB it doesn't work 100% of the time, sometimes I have to make the screen flash more than once to make ROB move. That's strange because it seemed to work 100% of the time in Family Basic.

2) There's something wrong with my Famicom external controller reading, because UP and DOWN on my external controller (a Capcom Power Stick Fighter) moves the cursor several tiles up and down instead of just one (it works in other games, my own pong game and even in the Everdrive menu). That's strange because that code is almost the same as in my pong game. SELECT button works as it should though, and "controller 3" in Nestopia has no problems. Maybe the CPS-Fighter doesn't like the logging of old button states for some reason. Solved by using another controller reading routine.

3) There seems to be some garbage on the screen after flashing a command. I didn't notice this in the emulator but when testing on my everdrive it was noticable. Family Basic didn't have any such garbage (tested on real hardware).

I reused lots of code from my pong game so it has tons of comments (it's kind of my notebook) there, but only the "main.asm" and "sub.asm" files are really relevant. I'm using constant values for some of the PPU values that needs to be restored after flashing the screen (the PPUMASK value for instance), so I guess you might need to change the code to back up the old values before flashing (like Family Basic does), if you are using this routine in your own project.

Finally I'm sure my program has tons of other flaws, so don't hesitate to point them out.
Re: ROB homebrew
by on (#131338)
I know that Bunnyboy has made a test rom, but I don't think it was posted anywhere. http://youtu.be/wRYA2DsuFtk
Re: ROB homebrew
by on (#131342)
On a related note, is there any emulator with a R.O.B. simulation? Maybe some kind of graphical display of the robot and it's expected states of motion?
Re: ROB homebrew
by on (#131368)
I don't think so, not that I know of.

NESHomebrew wrote:
I know that Bunnyboy has made a test rom, but I don't think it was posted anywhere. http://youtu.be/wRYA2DsuFtk
Thank you, at least his seems to work 100% of the time.


I noticed that the wiki has a proper controller reading code, so I changed the one I used for that one. It doesn't help my external controller though.
Re: ROB homebrew
by on (#131537)
OK the second problem is now solved. I noticed that Tepple's controller reading routine here viewtopic.php?f=22&t=7991 worked with my external controller so I updated the ROB program to use that one instead. Incidentally it now also has anti DMC OAM bug countermeasures as a result.

Also I suppose the reason why ROB doesn't respond 100% of the time could simply be because my menu handling is too crappy. Sometimes it just fires off the first option (TEST) which does nothing at all if ROB's LED is already lit. I can't test it though, because my ROB is back in his box.