virtual game console

The Uzebox now have a fully functional emulator! Download and discuss it here.
Post Reply
x12r13
Posts: 1
Joined: Tue Nov 22, 2016 5:48 pm

virtual game console

Post by x12r13 »

hello folks,

im thinking about developing a virtual game console for testing machine learning concepts.

by doing some research i found your uzebox project.

since i did some programming on atmega years ago i'm familar with the avr toolchain and i'm impressed what you already did and get out of it.

since the virtual game console will be running primary headless in stepping mode i dont have to deal with memory, performance and timing issues, but if i choose the constraints wise it should bei possible to provide cross platform compatibility.

whats the advantage for your project to help me with the virtual console design?

since i want to provide open coding challenges for virtual players (like on a chess server) against human players there is growing potential for your community. my primary focus is testing deep learning concepts and studying pattern recognition performance. and im looking for contacs to other open source developers. if it works you get have access to state of the art virtual players and a community with coding challenge focus.


i like the idea that the coding challenges are playable by humans on an embedded system with the look and feel of a retro console.

the first thing on the todo list is a grass mower challenge. given a garden layout find the best solution for mowing the lawn by given constraints. borders, mower witdh, mover speed, turn speed, cable lines, temporary oder permanent no go zones, charging place, deposit areas, ...

but where is the funny part?

the mover can't be stopped (like snake), you have to take care not to cut your powerline, the grass box gets full and you have to get rid of cutted grass. what if there is player 2, trying to get more grass mown than you and getting all the money from the princess? using his power cable as protector against you?

this system is very complex, its a tricky task to do everything in an efficient way.

and its a real world problem for grass mowing robots.

on the other hand, as proove of concept, i want "to port" a game from uzebox to the virtual game console.

what i need:

i understand the basics (tiles, audio, control code, ..)

is there a fully documented api concept with specification of the time slots for control operations?

has someone a flowchart for encapsulated game programming, where the code parts are seperated into
initialisation
loop()
readController1
readController2
program control
.. do something in the memory ..
background selection
sprite manipulation
audio selection
waitForKernelToProcessFrame()

i saw that tasks like background selection and much more is already available and the kernel is dealing with graphics generation, playing audio signals

the virtual console will send json data of shown tiles and audio to the client, on the other side it listens for virtual controller input.

thats the first draft.

are you interested? what do you think of it?

greetings from vienna
arnin
User avatar
Jubatian
Posts: 1564
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: virtual game console

Post by Jubatian »

Hi! Welcome on board!

For a start, I think you could look in the wiki, most specifically here for setting up your development environment. You should clone the Uzebox master repository then, and possibly compile it (its main makefile will go through all components including support tools and game demos).

To get a glimpse on how you could start, look at this simple tutorial which shows the very basics of how a Uzebox program might look alike including its build scripts.

The Uzebox wiki then contains lots of information on how you could continue.

Assuming you want to port a simpler, C language only Uzebox game, it should be possible. The kernel is designed to stay in the background, most commonly people might use the WaitVSync function with a parameter of 1 to synchronize with the video frames (60Hz). You would use the various API functions to interface with the kernel such as asking it to place sprites or read the controller's state. If you picked up a video mode, you could write a suitable kernel yourself for your host (virtual game console) which provides the Uzebox API for it.

Hope these help for a start!
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: virtual game console

Post by uze6666 »

Hi Arnin, welcome!

Your project seems very interesting and we will help the best we can!

There's also this document on the wiki I made a while back on the Uzebox that explains the Uzebox hardware and the kernel. It contain flowcharts like you mentioned. Nothing to expansive but it help get the big picture.
Post Reply