[Game]Potatochip games

If anybody here is feeling nostalgic for the late 90’s, here’s a bunch of games for the Sega Dreamcast VMU, running in an emulator (SoftVMS by Marcus Comstedt, ported by me).
Want to play a game that’s not on the list? Just say the name, I’ll hunt it down and upload a bin.

#Games

Powerstone.bin (109.0 KB)

ChaoAdventure.bin (126.7 KB)
A virtual pet from the Sonic Adventure game. Save with C+B, load with C+A, invert with C+Up.

ChaoAdventure2.bin (126.7 KB) NEW The virtual pet from Sonic Adventure 2. Has some bugs, but is playable. I prefer the first one. Save with C+B, load with C+A, invert with C+Up.

PocketGT.bin (109.0 KB) A virtual pet where the pet is a race car driver.

PacMan.bin (78.5 KB) It’s… pacman.

PaperAttack.bin (54.5 KB) (Minor glitches, but the game is playable)

NanwakaDensetsu.bin (109.0 KB) japanese RPG

CCSakura.bin (94.7 KB) NEW Another japanese game. I have no idea how to play this. :stuck_out_tongue:

IDOUDO.bin (51.5 KB) A “Simon says” style game.

GluckyLaby.bin (95.6 KB)
3D First-Person dungeon crawler with 5 levels. My favorite of the bunch, but it has a glitch when you find a chest. Don’t try to open a chest. Save state to the SD card with C+B, load with C+A!

fallingblocks.bin (66.2 KB) NEW A falling blocks game. It runs way too fast, but I’ll share it as-is for now.

Took down Soulcalibur, it needs work.

#Sources

Source (all games, see flash.h)

If you want to convert some other VMU game, use this.
#include <stdlib.h>
#include <stdio.h>

int main( int argc, char **argv ){
  FILE *f = fopen( argv[1], "r" );
  if( !f ){
    printf("Could not open file.\n");
    return 1;
  }
  
  FILE *fo = fopen("flash.h", "w");
  fprintf( fo, "const unsigned char flash[] = {\n");
  bool comma = false;
  int nl=0;
  while( !feof(f) ){
    if( comma ) fprintf( fo, "," );
    if( !(++nl%15) ) fprintf( fo, "\n" );
    int ch = fgetc(f);
    if( ch == -1 ) break;
    fprintf( fo, "0x%02x", ch );
    comma = true;
  }
  fprintf( fo, "\n};\n" );
  fclose(f);
  fclose(fo);
  return 0;
}

Usage: ./main file.vms
Output will be a flash.h file.

#Screenshots

6 Likes

powerstone seems to run the best
the rest seem awfully slow and not registering input sometimes
pocketGT is just the sega logo

1 Like

For future reference, all the Pokitto::Display functions are static (or at least all the ones I’m aware of), so Pokitto::Display &display = pok.display; is redundant.

Otherwise what’s this an emulator of, Chip8?

1 Like

Ok, I’m going to need to do some more work in ProjectABE before I can fix these issues.

@Pharap It’s a Sega Dreamcast VMU emulator. I had ported it to the Arduboy, but the space restrictions there meant that none of the more interesting games would fit.

5 Likes

Do they run on original hardware and from SD Card?

They should run, but they’ll probably be really slow.
I haven’t had a chance to calibrate speed yet.

I think the idea is really interesting. I never had a vmu, this would be nice to try…

1 Like

The Sega VMU is the only system I know of that was described as being hostile to programmers (though I’m sure there must be others). As a result, a whole lot of terrible things were made it.

As soon as I get the Pokitto emulator running well I’ll get back to this. I remember that I used to like some games, but it might be nostalgia bias, maybe they were all terrible and I’ll find out the hard way. :stuck_out_tongue:

1 Like

At least we can find out that way, always wanted to know more about these games😉

1 Like

I did test chaoadventure on the real hardware. Runs a bit slow, but it’s playable and works from sd card!

1 Like

Did try some more. Only power stone does run well, and chao adventure doesn’t save any changes.
The idea is great, could use some further support😉

1 Like

Thanks for testing!
I didn’t implement saving, yet. It is going to be tricky. VMU games are save files, so they just save over themselves.
To get this to work, I think I’d have to take the game out of the bin and put it in the SD card.
That’d make saving easy, but running becomes harder and will require paging code in and out of RAM since the Pokitto doesn’t have 128kb free. >_<

1 Like

Ah, thanks for the response. This is interesting indeed.

I finally managed to optimize the code and updated the bins in the first post.
Sometimes it runs a bit faster than on a real VMU, but the games are playable. I’ll have to add some delays later.

Still can’t save, which is annoying for ChaoAdventure, PocketGT and GluckyLaby… no idea how to do this, or even if it can be done at all.

3 Likes

Great! If you really manage to implement a sace feature this would be marvelous.

1 Like

I just implemented save state in GluckyLaby, and am testing it before I update the other bins.
If you want to try, it’s in the first post. Press C+B to save, C+A to load a previous state.
Managed to get to level 5, so far. Now that I can save I don’t have to start over every time! :stuck_out_tongue:

2 Likes

I don’t believe it. I will try it as soon as i can. Thank you for your good work. There are a lot of interesting programs for vmu, this could be very interesting.

1 Like

After much wandering around, stuck in level 5, I decided to google for gluckylaby and found the original developer’s webpage. Then I found out he never finished it, so it goes nowhere. :disappointed_relieved:

2 Likes

That’s sad, but hey, nevermind, at least we know this now (i didn’t before).

1 Like

Btw: Did you try to implement the save feature into the other vmu games as well?