ROB homebrew

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

ROB homebrew

Post by Pokun »

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.
Attachments
Robtest.zip
(42.57 KiB) Downloaded 263 times
Last edited by Pokun on Sat May 02, 2015 3:26 am, edited 4 times in total.
User avatar
NESHomebrew
Formerly WhatULive4
Posts: 418
Joined: Fri Oct 30, 2009 4:43 am
Contact:

Re: ROB homebrew

Post by NESHomebrew »

I know that Bunnyboy has made a test rom, but I don't think it was posted anywhere. http://youtu.be/wRYA2DsuFtk
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: ROB homebrew

Post by rainwarrior »

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?
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: ROB homebrew

Post by Pokun »

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.
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: ROB homebrew

Post by Pokun »

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.
Post Reply