Skip to content

Category: Console

Console

Amiga style PSP Demo

I have been working on a Amiga style PSP demo using some traditional Amiga OCS influenced demo effects. It started with porting the FC player to the PSP, later i added the sine scroller effect and logo swing.



Usage

  1. Install docker image with psp toolchain
  2. Create pspdev-docker.sh script into your path
  3. Compile
pspdev-docker.sh make clean all 
  1. Run elf in the emulator
/Applications/PPSSPPSDL.app/Contents/MacOS/PPSSPPSDL sine-deme.elf
Links
Leave a Comment

A modern toolchain for Vectrex development

Recently i read an article about the Vectrex game console. I kew the system a bit, also played it when it came out in the early 80s at a friends house. But i never really hat a connection to the system, like i have for the SNES or the Amiga computer.

Since writing an emulator is on my programming bucketlist, i recenlty took a look at simple platforms that i could start to write an emulator for. I looked into stuff like Chip8 and the GameBoy that seemed easy to emulate, in comparison to a PS1 or N64.

So the Vectrex got interested. I started reading its specification. It all seemed straigth forward to me. The Vectrex uses a Motorola 6809 CPU, which is not a super common 8bit CPU, but was used in the Dragon home computers. Otherwise there is an AY-3-8912 for the sound and 1KB RAM and 8KB ROM.

To get started i took a look into homebrew scene, to figure out getting own code runing on the machine. As usual for systems from that time it was mainly programmed using machine code. Which i kind of like, but also implicates a higher learning curve. There is typically no middleware or frameworks that helps you with anyhting, so you have to learn all the HW registers and figure out how to stuff.

So i was surpised to find a of modern c toolchain with some libc and bios support. I ended up following the instructions for a modern c based toolchain.

The toolchain basically consists of a c compiler, assmbler & linker and a emulator. It also came with and SDL based Emulator, but it would not run on current MacOS because of the unmaintained/bugfixed SDL library. So i decided to port the the emulator to SDL2, which was fun learning the render contexts of SDL2.

So thats what iam using

  • CMOC – The C compiler
  • LWTOOLS – Assembler and linker for the 6809
  • VecX – Vectrex emulator

I started off modifying the c examples that came from Johan who ported the CMOC compiler suite to the Vectrex system.

This is what i came with, you can find the code in my sample repo.

VecX Emulator

Leave a Comment

The PCB is coming down

Got an mail from pcb-pool.de, our PCB is nearly done and will arrive this week. So the first prototype will be assembled over the weekend. Keep fingers crossed that everything is working as planed.

Quick Featuers list

  • ATMega 644
  • Software USB
  • FTDI USB Debug port
  • 4MB SRAM
  • LO/HI Rom Switch
  • SD Card Daughter Board
  • AVR Cart IRQ Trigger
  • AVR WR sniffer

Things not happping with this version

  • Save Game support by design
  • DSP Support
Leave a Comment

SNESRAM Proof of Concept is working

We have been working the last 4 Weekends on a cool side project – we built a DIY Super Nintendo development hardware. As a SNES Programmer or SNES Nerd you always want to run your code on the orignal hardware. But this is only possible using old backup stations from the 90ies like the Super Wild Card or Game Doctor. But all these tools lack cool features like SD Card support, USB connection or real time debugging. I own an old Super Wild Card and its a pain in the ass. I can’t get the parallel port connection working and so i have to use the builtin floppy drive 🙂 There are newer projects around, but either not working or not really cool.

So we decided to build our own hardware. Today we got our proof of concept working. Its based on a STK500 setup using a ATmega16 (Ja.. I fried the ATmega32 while setting the fuses..). Attached is a SD Card and a home cooked memory bus driver for one 512k SRAM Chip. Both the ATmega and the SNES memorybus are connected to this SRAM via busdrivers. The ATmega does the housekeeping and manages the access to the RAM. To save IOpins on the ATmega side, we use shiftregisters and counter to set the adress. On the SNES side its connected to a Snes Multi Cartridge Adapter. One slot holds an orginal game, so we can use the lockout chip from there and solder the data and address from the other slot to our memory interface.

Now we are able to upload a 2Mbit SNES rom. A mario sprite on flashing background. We load this rom image from the SD Card and write it to the attached SRAM. When this is done we switch the busdriver and connect it to the SNES memory bus. Today we got the demo working. See the video and pics.

We did like 3 other proof of conecpts before to get this working.

[flash]http://www.vimeo.com/4011976[/flash] Watch the Video on vimeo to get HD and see the console output

Right now we are planing the features for version 0.1. Its mainly to get a good hardware design the cool software features are planed for version 0.2

  • ATmega 644
  • 4mb SRAM
  • Address Counter
  • Address SREG
  • Busdriver
  • LO/HI Rom support
  • Lockout Chip
  • Save game SRAM
  • SD Card Support
  • Software USB
  • USB Upload Client
  • Software Mode Switch
  • Remote Reset

The Project is hosted at Assembla.com

And the poc code is here and here

git://git.assembla.com/snesram.git

4 Comments

OpenWII Debugged

Made my very own openwii version including debug routines. So i added a another status led to the chiip design and also added IO lines to the ATmega SIO pins. So now i have a drive chip which prints debug info via a serial line. So everybody who want to understand the dvd drive patching can watch this in serial console. The debug code retrieves the media status flag and prints some other status flags.

pic1 pic1

download source

Leave a Comment

Fuckin awesome SID podcast

Wow cool stuff, a podcast playing only real awesome SID stuff, including some newer SID stuff from the last few years. No lamers talking inbetween just chiptunes. Great ! Check it out 8bit Mayhem

BTW my favorite tunes:

  • JCH – Chordian
  • Rob Hubbard – Lightforce
  • DRAX – Bombastic
  • Rob Hubbard – Commando
  • Jeroen Tel – Cybernoid II
  • Rob Hubbard – Delta
  • DRAX – Depressed
  • Mitch & Dane – Gloria
  • DRAX – Disco Zax
  • Edwin van Santen – Edwin’s Dream
  • Michael Hendriks – FAME
  • JCH – Hawaii
  • Martin Galway – Miami Vice
  • Edwin van Santen – Phalanx
  • David Whittaker – Red Max
  • Chris Hülsbeck – Ski Dance
  • Juha-Matti Hilpinen – SYS4096
  • Maybe i should code a PSP based SID compilation demo…

    Leave a Comment

    Gnuboy AALib

    This is really usefull, isn’t it. Made a video driver for gnuboy based on aalib. The sound it actually done by sdl lib. But i don’t care about sound to much because this thingy is meant to be played via telnet. So hook up the aagnuboy binary into xinted and have fun.

    service aagnuboy
    {
        disable         = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        log_on_failure += USERID
        port            = 1989
        server          = /usr/local/bin/aagnuboy 
        server_args     = /usr/local/games/roms/demo.gb 
        log_type        = SYSLOG daemon info
    }
    
    

    pic1

    download gnuboy

    Leave a Comment

    Return of the SNES

    Updated my old SNES demo a little so that it runs on real hardware. Was able to get my handy on a half broken Super Wild Card. So i finally i fixed the rom headers and now the little demo runs on a real snes. Nice.

    Snes Snes

    Snes Snes

    Source

    Leave a Comment