SEGA Homebrew

(Felipe Manga) #1

Anybody remember this thing?

I ported Marcus Comstedt’s SoftVMS emulator to run on the Arduino Nano (a 328P can run an emulator!). Then I hacked it severely until it ran on my Arduboy emulator (an emulator on a 32u4… in an emulator! :laughing:).
It might run on actual hardware, I don’t have any way of knowing. It’s my first release for the Arduboy. I had to rip away most of the arduboy2 library as there was no ram for the sBuffer.

The arduboy simply doesn’t have enough space for games like the one that came with Sonic Adventure (64kb, iirc), but some of the smaller homebrew titles fit. I’ll slowly package them and put them here.


First up: a Simon-like game by Rednuht. The game is opensource, in pure potato-chip assembly, available here:

Play In Emulator - Download Hex File - Download Ino File


A Snake game by Stu. Any other information on it seems to have bitrotted away completely.

Play In Emulator - Download Hex File - Download Ino File


Another game by Rednuht. Assembly source, lore, VMS files, etc:

Play In Emulator - Download Hex File - Download Ino File

Recommended games?
(Holmes) #2

I have been wanting to play some VMU homebrew for soooo long! This is awesome! Cannot wait!!

(Scott R) #3

This is so cool and brings back so many memories.

(Erwin) #4

Runs ok, but there is garbage at the sides of the screen:

(Felipe Manga) #5

Ah, yes, I removed the initial screen clear in an attempt to get 40 blocks of flash space.
This game does not need that much, but I forgot to put the code back in. I’ll remember on the next ones.
Thanks for the testing!

Anybody have any VMU game recommendations?

(New game added to first post)

(Erwin) #6

Besides the sonic adventure 2 game, I never played any other game that worked “offline” because the batteries lasted so little. I remember trying to play Virtua Tennis 2 via the VMU :stuck_out_tongue: but I am not sure how that “game” worked, probably the screen data was being streamed from the Dreamcast.

I uploaded your conversions to (I uploaded a fixed version with the screen blank fix to the first game)

I am not sure about the last game you uploaded, the one called T****s it is kinda forbidden her.

(Felipe Manga) #7

Yeah, batteries were a constant frustration on the VMU. Even if you didn’t play offline games. Every time you turned on the DC the VMU would emit a loud high-pitched squeal to warn you your batteries were dead.
Every. Single. Time. -_-

The VMU did support streaming from the DC. VT2 was one of the few games that used it.

I didn’t know about the prohibition on that falling blocks game (is even mentioning the name forbidden?!). Pardon the noob. I removed the link, until further notice. It’s a pitty, mostly because I consider it to be a significant release in Dreamcast history: it’s responsible for the VMU homebrew scene that came after it.

(Pharap) #8

Mentioning its name isn’t strictly forbidden, but we like to pretend it is to make it more dramatic.

Bascially Arduboy Inc had to do a deal with The Tetris Company LLC to get the Tetris-only Arduboy thingy sanctioned, so subsequently putting Tetris clones on the Arduboy is a bad idea, especially considering TTC LLC is known for taking legal action against Tetris clones.

(Holmes) #9

I’ve posted this on some other thread on the forum. Just to show off because of how cool it is…

(Felipe Manga) #10

It’s amazing how much they managed to squeeze out of a device with specs far worse than the 328/32u4 (aside from flash storage, of course).

I added SpaceInvaders to the first post, in the place of “the game that shall not be named”. :stuck_out_tongue:

(Kevin) #11

Do you not have an Arduboy?

(Felipe Manga) #12

Nope. Hope to win one in the jam, though! :laughing:

(Erwin) #13

From all 119 games for the VMU I could find scrapping websites, 56 were compilable using your emu port for the arduboy:

Should we add those as ‘arduboy games’? or should I add a new category for ‘emulation’?

(Felipe Manga) #14

Woah! :smiley:

Unless we’re sure that a good amount are actually playable, it’s probably best to keep them separate. Wouldn’t want to pollute the repo with a bunch of broken games.

Edit: Looks like everything in “Action” works! The “sleepCount = 6;” line needs tweaking in a per-game basis though. It’s probably too slow to use as a default. Higher = faster. Maybe 12?

Nothing in the clock category works. I haven’t tried to debug those, yet.

There’s a bug in the CPU emulation that I’m still trying to track down. It causes a bug in arcade/Breakout.

(Erwin) #15

I am going to batch test them in the Arduboy itself. Maybe comparing against another vmu emulator.

How do other emulators know the sleepCount?

(Felipe Manga) #16

This bit of code is supposed to handle the throttling:

  if((epoch.tv_usec += 10000)>=1000000) {
epoch.tv_usec -= 1000000;
  if(now.tv_sec>epoch.tv_sec ||
 (now.tv_sec == epoch.tv_sec && now.tv_usec >= epoch.tv_usec)) {
t.tv_usec = 0;
t.tv_sec = 0;
  } else if(epoch.tv_usec<now.tv_usec) {
t.tv_usec = 1000000 + epoch.tv_usec - now.tv_usec;
t.tv_sec = epoch.tv_sec - now.tv_sec - 1;
  } else {
t.tv_usec = epoch.tv_usec - now.tv_usec;
t.tv_sec = epoch.tv_sec - now.tv_sec;

I disabled it when “I hacked it severely until it ran”. Since it wasn’t necessary for the games I uploaded so far, I haven’t looked into it.


This is so cool :+1:

not that Russian box game again? :smile: It’s kind of like in Harry Potter where you don’t metion the name :smiley:

(Pharap) #18

It’s a curse.
We’re not allowed to make one, therefore it’s the game everyone wants a clone of.

(Scott R) #19

I have several and a MicroCard, having a bootleg block game gets the pulse racing :joy::joy::joy:

(Walter Lauer) #20

Hallo Erwin

die waeren doch was fuer deine Seite