6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Apr 20, 2024 12:47 am

All times are UTC




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: DODO 6502 Game System
PostPosted: Thu Mar 03, 2016 9:32 pm 
Offline

Joined: Wed May 20, 2009 1:06 pm
Posts: 491
https://hackaday.io/project/9325-dodo-6 ... ame-system

https://blog.adafruit.com/2016/03/03/do ... -hackaday/

It looks like a big mess of wires.

Quote:
The Dodo is yet another homebrew 6502 single board computer. The goal is to ultimately create a portable game system out of it. The processor is the WDC 65C02, and the support chips are a 65C22 VIA, 6551 ACIA, 32k EEPROM, and a 32K SRAM. The address space design cuts the RAM in half to 16K, but the tradeoff is a very simple/flexible IO addressing scheme. The display is the 2.42″ 128×64 OLED from Adafruit running in 6800 8-bit bus mode. For software I am using the cc65 suite of development tools. I will consider this project done when it is on a PCB, mounted in a 3D printed enclosure with a gamepad built in, and I have written a game fun enough that my 4 year old digs it.


I did a google search for this project on this forum and through the website's search and so far, I think this is new and safe to post because I wouldn't knowingly post it if there was a project named here after it.


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 03, 2016 10:20 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10789
Location: England
Good find! I see from the repo at https://github.com/peternoyes/dodo that this is by Peter Noyes and MIT-licensed, and he credits Garth's primer and Dirk Grappendorf's project site. I don't think Peter is a regular here, but maybe he is, or maybe he'll join us.

It's a breadboard implementation, with the advantages and disadvantages we've discussed before. I wouldn't describe it as a mess! Anyhow, Peter intends to get to a PCB in due course.


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 5:37 pm 
Offline
User avatar

Joined: Tue Mar 15, 2016 4:06 pm
Posts: 35
Hello everyone. Peter here. I created Dodo.

It was a big mess of wires, but it is now on a PCB. The breadboard worked at first but over time became very flaky. Here is where I am at:

- The main board is done and tested
- I have prototyped a game pad
- I have a single voice of sound working using the shift register on the 65C22
- Cobbled together a simulator so I can more quickly develop software.
- Deep in game development. In my simulator it is easy to see how many cpu cycles per frame my game is using. I am targeting 20fps on 1mhz so that means I am limited to 50,000 cylces. Right now I am at 60-70k so there is work to do. I am confident I can solve it by rewriting my sprite drawing functions in assembly.

What is left:
- Prototype hooking up an SPI FRAM chip to use as high score storage
- Design 2nd PCB for game buttons and to mount screen on, I will also put FRAM on here if it works out
- Design enclosure and 3D print it (waiting for my Kickstarter Tiko to arrive)

_________________
My 6502 Game System: https://hackaday.io/project/9325-dodo-6502-homebrew-game-system


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 6:16 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10789
Location: England
Welcome! I was wandering around the web yesterday and found some of your photos:
https://www.instagram.com/p/BCggao9y-D9 ... adofwonton


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 7:10 pm 
Offline
User avatar

Joined: Tue Mar 15, 2016 4:06 pm
Posts: 35
Yup. That's me!

_________________
My 6502 Game System: https://hackaday.io/project/9325-dodo-6502-homebrew-game-system


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 7:17 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10789
Location: England
Oh - this simulator written in Go?
https://github.com/peternoyes/gododo
I'll have to read that code...


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 7:34 pm 
Offline
User avatar

Joined: Tue Mar 15, 2016 4:06 pm
Posts: 35
Yeah, I wrote it in Go but it is quick and dirty. A lot of cleanup needs to happen. I basically ported http://rubbermallet.org/fake6502.c, and I added in some of the 65C02 opcodes. I also need to audit the cycle counts for all instructions because fake6502 is an NMOS emulator and I am targeting the 65C02. The SBC implementation is a mess, but it is working in decimal mode. I have it passing the Klaus suite of tests. My SSD1305 implementation is an even bigger mess and only supports the mode that I am using it in. For now it outputs graphics straight to the console.

Once my hardware and game are done I plan to turn the Go simulator into a web service and host it in the cloud and allow a web front end to talk to it through websockets. I think it would be pretty neat to be able to play my games online.

_________________
My 6502 Game System: https://hackaday.io/project/9325-dodo-6502-homebrew-game-system


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 15, 2016 8:08 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10789
Location: England
That would be neat!


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 24, 2016 4:10 pm 
Offline
User avatar

Joined: Mon May 25, 2015 2:25 pm
Posts: 632
Location: Gillies, Ontario, Canada
pnoyes wrote:
Hello everyone. Peter here. I created Dodo.

It was a big mess of wires, but it is now on a PCB. The breadboard worked at first but over time became very flaky. Here is where I am at:

- The main board is done and tested
- I have prototyped a game pad
- I have a single voice of sound working using the shift register on the 65C22
- Cobbled together a simulator so I can more quickly develop software.
- Deep in game development. In my simulator it is easy to see how many cpu cycles per frame my game is using. I am targeting 20fps on 1mhz so that means I am limited to 50,000 cylces. Right now I am at 60-70k so there is work to do. I am confident I can solve it by rewriting my sprite drawing functions in assembly.

What is left:
- Prototype hooking up an SPI FRAM chip to use as high score storage
- Design 2nd PCB for game buttons and to mount screen on, I will also put FRAM on here if it works out
- Design enclosure and 3D print it (waiting for my Kickstarter Tiko to arrive)


Looks great!
Enjoyed reading about it, thanks for posting.

When you do your controller, are you planning to hack an existing unit, or design from scratch?
I am going the DIY route, keeping to the basic up, down, right, left, and dual fire unit.
Another option is to purchase one of those SNES knockoffs and gut the shift register.
I purchased a lot from EBay once, and added direct wiring. Worked great.

Brad

Brad


Top
 Profile  
Reply with quote  
PostPosted: Tue Mar 29, 2016 2:33 am 
Offline
User avatar

Joined: Tue Mar 15, 2016 4:06 pm
Posts: 35
Thanks Brad!

For the controller I plan to start from scratch. I am going back and forth on using pushbuttons with caps, or going with conductive silicone membranes like in a real pad. I am keeping it simple too, Up, Down, Left, Right, A and B. My plan is to make a number of these things so I want a design that I can reproduce instead of a one off hack.

Also, I want the whole thing to be integrated like a real game boy so I kind of need a custom PCB for the controller.

_________________
My 6502 Game System: https://hackaday.io/project/9325-dodo-6502-homebrew-game-system


Top
 Profile  
Reply with quote  
PostPosted: Sat Apr 09, 2016 10:57 pm 
Offline
User avatar

Joined: Tue Mar 15, 2016 4:06 pm
Posts: 35
I have made a number of updates to Dodo.

1. There is now an ABI, and a game can be developed separate from the library calls
2. Game code can be stored on an SPI flash chip. The code is copied into RAM by the system.
3. Game cartridges can be flashed over RS-232 by Dodo
4. Game code can be written in C using cc65 and calls into the ABI written in assembly.
5. A sample project is hosted here: https://github.com/peternoyes/dodo-sample
6. I have sent off design files to have game cartridge boards printed
7. I have the beginnings of a web emulator working using websockets

The next step is to design another board to mount the screen, gamepad buttons, and card edge connector. After that board is done I just need to design an enclosure and it should be good!

_________________
My 6502 Game System: https://hackaday.io/project/9325-dodo-6502-homebrew-game-system


Top
 Profile  
Reply with quote  
PostPosted: Sun Apr 10, 2016 8:13 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10789
Location: England
Sounds great - thanks for the update. I'm kind of following your progress on your hackaday minisite but there's no RSS for that so it's easy to miss things.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: