Uzenet

Topics regarding the Uzebox hardware/AVCore/BaseBoard (i.e: PCB, resistors, connectors, part list, schematics, hardware issues, etc.) should go here.
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Uzenet

Post by nicksen782 »

We SOOOOOoooo need a Mario Cart like game.
CunningFellow
Posts: 1445
Joined: Mon Feb 11, 2013 8:08 am
Location: Brisbane, Australia

Re: Uzenet

Post by CunningFellow »

Where does mario cart come in to uzenet?
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Uzenet

Post by nicksen782 »

Competitive racing! Split screen with player 1 and player 2. Uzenet could be used to play a racing game over the Internet. Just something to think about.

"Oh, you think Mode 1 is better than Mode 2?! Oh, you're on! We'll settle this with Mario Cart!"... or Super Smash Brothers, etc.
CunningFellow
Posts: 1445
Joined: Mon Feb 11, 2013 8:08 am
Location: Brisbane, Australia

Re: Uzenet

Post by CunningFellow »

Ah OK.

I am thinking Mario Cart is a bit beyond what the Uzebox is capable of. Maybe something more like super-sprint.
User avatar
D3thAdd3r
Posts: 3222
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Uzenet

Post by D3thAdd3r »

It's safe to say SNES mode 7 with scaled sprites is beyond our resources ;) , but RC Pro Am or other racing games would be a blast. A racing game is good, since they can be made very latency tolerant(ie. turn off car<->car collisions if high latency, no delay+trust client position+prediction). Puzzle games should work easily. I think the problem games is anything where the states of 2 players are tightly connected and dependent on each other and time critical. The only games like that are Frog Feast/Tron/Uzewars. Something like Gauntlet/Zombienator could probably be done taking advantage of the cooperative nature(UDP, if he says he killed that ghost and gets a score then he did, even if I did too...) but not easy. If hellbent on making an online fighting game it could probably be done OK for ping < 150ms.
User avatar
kivan117
Posts: 73
Joined: Sat Mar 14, 2015 5:43 am

Re: Uzenet

Post by kivan117 »

D3thAdd3r wrote:BTW Kivan117, from your point of view is that format rational and easy to use in your program? Honestly a lot of the work I've done has been making code to try things and then learning why it should be done a different way for the system. I hope that process is mostly settled now, but nothing is set in stone by any means.
It works really well for my current smaller project. Pretty easy since the score system is just a single number, classic arcade style. Would All Time and Weekly lists be possible? How could they be differentiated in the communication protocol?

Speaking of racing games my current larger project is a lot more involved and the only high score system that would make sense is the fastest times for each track. The game will ship with a few tracks built in but I hope to make an external tool eventually so that people could make their own tracks and load them off the SD card too. For racing games like this where fastest time is per track how would we keep the scores updated? Also, time is a slightly trickier thing to track with a single "highest is best" number. Not impossible, just a bit tougher.

Maybe after implementing all the other things I have on the list for my larger project I'll look at the possibility of online two player.

While we're on the subject of cool multiplayer ideas, a mode 2 based gauntlet-like would be fun with simple arcade high scores :D
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Uzenet

Post by uze6666 »

I badly need a break on hardware stuff and do software! I'd like to wrap up the keyboard firmware once and for all. After that, what's the state of affairs on the Uzenet, anything I can help on the kernel side?
User avatar
D3thAdd3r
Posts: 3222
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Uzenet

Post by D3thAdd3r »

Well the beauty is you UART code already seems to be reliable at 57600. I think we need more low level UART stuff standardized into the kernel for sending bytes from a ram buffer, strings from flash, a byte, a short. I guess not too interesting but having them official and matching naming convention would make things nicer when we start sharing code on this stuff.

Some thought on the EEPROM reserved spaces might be in order. As far as MAC address, the 8266 can change it's MAC arbitrarily, and I still haven't figured what use a program would have to know the MAC. No good for accounts/security since it's changeable at will, even if it wasn't on 8266, EEPROM would be. Better I think, would be a standardized account/password so chatroom and game lobbies can log you in automatically. If there was ever a time to use reserved fields this must be it.

Past that how intimidating does thislook? Looks formidable to me but I've managed to get it into connected and talking in firmware upgrade mode by touching a jumper wire across ground and GPIO0 with the appropriate code(which I just converted from that python source). We need some mechanism to get this data off the SD card, into SPI ram, onto the UART efficiently..or something.. I haven't touched the difficult part at all, and I've been slacking in general which should change this weekend if I stay sober.
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Uzenet

Post by uze6666 »

I think I have already a couple functions already made but not published. I'll wrap them up and post them here to see what you guys think is missing, comments about the naming etc.

Totally agree about the EEPROM part.

Also esptool is nice, I see it often in other forums. Regarding custom firmware, I recently saw there's an aduino IDE fork released to build and deploy custom firmware to the ESP8266! Perhaps it could serve our needs...or not. But it is very interesting nonetheless for those who want to use the module in an standalone way. https://github.com/esp8266/Arduino
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Uzenet

Post by uze6666 »

About the EEPROM part and based upon previous discussion we actually have:

Code: Select all

const u8 eeprom_format_table[] PROGMEM ={(u8)EEPROM_SIGNATURE,		//(u16)
								   (u8)(EEPROM_SIGNATURE>>8),	//
								   EEPROM_HEADER_VER,			//(u8)				
								   EEPROM_BLOCK_SIZE,			//(u8) 
								   EEPROM_HEADER_SIZE,			//(u8) 
								   1,							//(u8) hardwareVersion
								   0,							//(u8) hardwareRevision
								   0x38,0x8, 					//(u16)  standard uzebox & fuzebox features
								   0,0,							//(u16)  extended features
								   0,0,0,0,0,0, 				//(u8[6])MAC
								   0,							//(u8)colorCorrectionType
								   0,0,0,0, 					//(u32)game CRC
								   0,							//(u8)bootloader flags
								   0,0,0,0,0,0,0,0,0 			//(u8[9])reserved
								   };
What about reusing the MAC and reserved bytes:

Code: Select all

const u8 eeprom_format_table[] PROGMEM ={(u8)EEPROM_SIGNATURE,		//(u16)
								   (u8)(EEPROM_SIGNATURE>>8),	//
								   EEPROM_HEADER_VER,			//(u8)				
								   EEPROM_BLOCK_SIZE,			//(u8) 
								   EEPROM_HEADER_SIZE,			//(u8) 
								   1,							//(u8) hardwareVersion
								   0,							//(u8) hardwareRevision
								   0x38,0x8, 					//(u16)  standard uzebox & fuzebox features
								   0,0,							//(u16)  extended features
								   0,0,0,0,0,0, 				//(u8[6]) uzenet key/password
								   0,							//(u8)colorCorrectionType
								   0,0,0,0, 					//(u32)game CRC
								   0,							//(u8)bootloader flags
								   0,0,0,0,0,0,0,0,0			//(u8[9])uzenet userid / handle
								   };
Post Reply