ElysianVMU Pre-Alpha Release Testing

General discussion pertaining to Elysian Shadows, ESTk, ESGamma, and the Adventures in Game Development series.

Moderators: News Mods, Elysian Shadows Team

Re: ElysianVMU Pre-Alpha Release Testing

Postby CaptainLizard on Sat Oct 08, 2016 5:12 pm

Been busy so I didn't get to test what I had until now. A disassembler sounds awesome and I'll be getting on that especially since I felt like some ROMs I ran seemed to drop inputs (using keyboard as controller). Chao 2 was one of those so I'll be revisiting that and see whats going on. Other than that, some games like MvC2 up and quit after trying to make a sound with an error code like this: http://imgur.com/ib6d5VW

I'll get back when I can about the input. I suspect it may be my crappy laptop but better safe than sorry. Hope this helps and can't wait to hear more :)
User avatar
CaptainLizard
ES Beta Backer
ES Beta Backer
 
Posts: 3
Joined: Sun Jan 11, 2015 12:37 am
Location: Missouri

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Fri Oct 21, 2016 2:54 am

CaptainLizard wrote:Other than that, some games like MvC2 up and quit after trying to make a sound with an error code like this: http://imgur.com/ib6d5VW
Whoah, seriously? Okay, so according to my coedz...
Code: Select all
       //ensure sane sound wave
        if(pulseWidth > 0 && pulseWidth <= period) {
            ...
        } else {
            _gyLog(GY_DEBUG_WARNING, "Attempting to play malformed sound wave [period: %d, pulseWidth: %d]", period, pulseWidth);
            assert(0); //malformed sound wave!
        }
something is seriously fundamentally reested here. The assert(0) is line 74 from your screenshot... So apparently MvC2 is trying play some REALLY fucked up sound wave. That _gyLog() statement above the assertion should be logging some of the details to your local debug log. Can you post what it says? It's at C:/Users/YOUR_USERNAME/ElysianVMU/vmu_debug.txt in your home directory.

The buzzer's frequency characteristics are driven by Timer 1, which is also a general-purpose timer as well. I'm wondering if maybe the buzzer hardware is supposed to be disabled at that point in time. That would mean MvC2 is just trying to use it as a general timer, and I'm mistakingly trying to generate a sound wave output from it... Fuck.
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Fri Oct 21, 2016 6:16 am

CaptainLizard wrote:A disassembler sounds awesome and I'll be getting on that especially since I felt like some ROMs I ran seemed to drop inputs (using keyboard as controller).
You're absolutely right. I wasn't really certain at first, but I've grown increasingly self conscious of it... and by self conscious, I mean I've been pissed off about it.

Couldn't sleep, so I fundamentally rearchitectured the entire event loop to fix the timing. One of the hardest parts of an emulator like this is trying to get the timing right. I had the CPU clock cycle timing basically nailed but then the gamepad input pins, serial communications, and screen were not tied to the same clock source. They were essentially running at 30-60fps (or higher) with the GUI, independent of the CPU core. So some of the frames where key presses or releases were being detected were frames when the VMU's CPU was "sleeping" (because it wasn't time for it to update yet), so ultimately the CPU was losing a bunch of interrupts from the input subsystem.

While I was redoing the input polling loop, I went ahead and made sure to treat the keyboard now as a removable device just like the controller, in preparation for running EVMU on the Dreamcast, OUYA, ForgeTV, Raspberry PI, or any other device where the keyboard is optional. I hopefully accounted for a corner case when a controller is removed while the buttons are still held down so the emulator is not stuck with the buttons down when it doesn't receive a button release interrupt on the respective pin.

Everyone please try the emulator again. It made a HUGE fucking difference in responsiveness and playability. It feels like it's 1000x more fluid now, because the input is tied with the CPU correctly. My bad, it was a major fuckup on my part. This may have even resolved some of the issues with the semi-working serial emulation over TCP, as that was not tied to the system clock either, but either way, I'll have to fix that up sometime after AiGD33.
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Wed Oct 26, 2016 11:17 pm

FINALLY fixed the annoying ass input bug where controllers are not detected properly when they're disconnected and reconnected. I was actually having to work on the libGyro input API for 4 player support in Elysian Shadows and wound up having to fix it there... since it's shared code, EVMU got the bug fix too as a side-effect. Oh, also updated the SDLJoystick2 library version we're linking to on MacOS, as the previous version had some problems with general controller detection and rumble/haptic support on certain controllers (like Xbox 360 controllers).

For those of you who have been following this project, the next Adventures in Game Development (Chapter 33) will be coming out literally any day and gives in in-depth look at the VMU, ElysianVMU, and Patrick creating art on such limited hardware.

This is the first the masses will have heard of this emulator, so I'm expecting to start seeing a shitton more bug reports here...
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Fri Oct 28, 2016 6:15 pm

Commented out the assertion failure when the SFX is deemed invalid. Won't hurt anything, as I'm not even trying to play the sound in that case, just gracefully ignoring it and logging it as a warning... Honestly not even sure how the fuck that assertion is failing in a release build, but I also ran into it on MacOS the other day.

This is a band-aid to prevent crashing and inconvenience until I figure out what the fuck is actually going on.
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Thu Dec 01, 2016 3:55 pm

In case you missed it in AiGD34, Raspberry Pi build has been added and is available in Dropbox. Seems to be fully functional, but performance is a bit shitty and needs some tweaking, because I opted to include all GUI functionality of the desktop version. The EVMU core itself is fast as fuck, but the Qt desktop stuff is probably bogging it down a bit on the Rpi. I'll have to tweak/optimize once I get a chance.

The shittier Rpi performance may also result in some inputs being missed from the controller... analog stick and keyboard seem more responsive than dpad, weirdly enough... I did leave it running on accident for like 4 days on the Rpi, and it was still going strong, so it's very stable at least.
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby dabbing on Mon Mar 06, 2017 11:28 am

Is it possible to save your progress in something like Chao Adventure beyond just using savestates?
dabbing
Chaos Rift Newbie
Chaos Rift Newbie
 
Posts: 1
Joined: Mon Mar 06, 2017 11:25 am

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Thu Apr 20, 2017 2:07 am

dabbing wrote:Is it possible to save your progress in something like Chao Adventure beyond just using savestates?
Nope, not yet, sorry. All the back-end code is there, just need some UI work to be done, but I've been sooooo busy with school that I haven't gotten around to it... That'll come with the next update, including support for viewing/modifying the entire file system.

The VMU is a very weird system in that there is really no concept of a "save file" on a per-game basis... The entire platform has a flash filesystem that needs to be represented, and only one game can ever be loaded on the device at once (so you can only ever have one save file per device). That limitation is stupid, so I need to put a little extra thought into allowing you to hot-swap ROMs and have standalone save files as with a traditional emulator while still allowing full filesystem access/manipulation.

I've managed to sneak in a few little features and bugfixes here and there over the last semester, but between being a full-time graduate student, working as a graduate research assistant to pay for tuition, and trying my damndest to do ES, EVMU hasn't gotten much attention.

A few things (that I can remember off the top of my head):
  • Full BIOS Support: This is fundamental. As far as I know, EVMU is one of only two VMU emulators to ever pull this off correctly, as it required cracking the (very simple) encryption on the Japanese VMU BIOS image that shipped with the Dreamcast Katana SDK and also required the reverse-engineering of a few totally undocumented internal opcodes having to do with reading and writing to and from flash... EVMU will automatically decrypt the Japanese BIOS image, and you can load it at any time, with or without an actual Game ROM image. The BIOS features a memory management mode, game mode, and clock mode, that all work fine. Hoping to support the VMU-to-VMU file transfers over TCP/serial soon.
    Screen Shot 2016-12-15 at 10.00.02 PM.png
    Screen Shot 2016-12-15 at 10.00.02 PM.png (22.25 KiB) Viewed 1577 times

    IT FUCKING LIVES!!!!!! You have NO IDEA what a pain the ASSHOLE it was to support the BIOS like this. There's a good reason nobody else is doing it.
    Screen Shot 2016-12-15 at 10.00.57 PM.png
    Screen Shot 2016-12-15 at 10.00.57 PM.png (21.38 KiB) Viewed 1577 times

    Clock mode is a fully-functional (and accurate) VMU watch/stopwatch!
    Screen Shot 2016-12-15 at 9.58.45 PM.png
    Screen Shot 2016-12-15 at 9.58.45 PM.png (20.92 KiB) Viewed 1577 times

    When you first load the BIOS, the VMU asks you to set the time and date. This is normal.
    Screen Shot 2016-12-15 at 10.16.14 PM.png
    Screen Shot 2016-12-15 at 10.16.14 PM.png (24.99 KiB) Viewed 1577 times

    Checking out what's saved to flash in file browser mode.
  • Load BIOS or Game ROM Independently: You can now load the BIOS OR a Game ROM image at any point in time. For the full experience, you should load the Japanese BIOS image (provided in the ROMs directory of the EVMU Dropbox) THEN load the Game ROM. You can then switch over to play the ROM in "game mode." This is TRULY reproducing the entire VMU experience... If you don't care about the BIOS, you can just load the ROM directly, and the emulator is essentially jumping directly into Game Mode without a BIOS.
  • Support for RAW VMU Flash Dumps: You can now load a raw file dump of the entire VMU's flash image into EVMU. This way you can dump the ENTIRE contents of your VMU including all save files and load it into EVMU, with a Game image already in the flash. Lots of VMU files online are in this format, and lots of homebrew tools and the Nexus memory card let you make dumps like this.
  • Virtual VMU to Physical VMU Connectivity over Serial: This is still very much a WIP and probably doesn't work completely yet, but the same way I've implemented VMU connectivity over TCP, I've now implemented in serial. It's a very robust implementation that lets you configure every aspect of the serial device/communications. (Note that serial connectivity isn't supported on the Raspberry Pi Build, so the "Serial Communications" menu item is missing in that build.
    EVMU-Serial.png
    EVMU-Serial.png (79.04 KiB) Viewed 1576 times

    Here's the serial configuration dialog... Should support ALL THE THINGS ON ALL THE PLATFORMS.
  • Custom DC Controller/VMU to PC Adapter: Eventually Tulio and I plan to release a little cable that will plug into a physical VMU on one side and the serial port on another side and will allow for direct communication between an emulated EVMU session and a physical VMU device for file transfers between the platforms. Tulio also completed the prototype of another adapter that allows a Dreamcast controller to be connected to a standard USB port AND provides full Maple protocol support for accessing the VMU (and other accessories). The plan is for EVMU to support this adapter and work as a kind of management tool,
    so you can have a database of save files/VMU images that can be dumped and committed to and from the device whenever you want... So no more running out of VMU space... Also this adapter will allow games like Elysian Shadows to fully support the Dreamcast controller, VMUs, and rumble packs natively on PCs just as if you were playing on a Dreamcast.
  • VMU Animation Support: VMU Animator is a tool that was created by the DC homebrew scene allowing users to create interactive animations that can be exported to a VMU. A lot of cool animations are out there and some of them could be called "games" with some level of user interaction. EVMU now supports the the LCD Animator image files directly, so they can be loaded and played within EVMU without having to export it to a native VMU format. When playing a VMU animator animation, the arrow keys allow you to jump between frames, the A button stops the animation, and the B button resets it.
    Screen Shot 2016-12-16 at 10.25.01 PM.png
    Screen Shot 2016-12-16 at 10.25.01 PM.png (28.84 KiB) Viewed 1577 times

    Playing an LCD animation someone made of recreating the Dreamcast startup animation.
  • 100% Accurate LCD Pixel Ghosting Effects: Okay, so this one might be a liiiiittle bit overkill, but it's awesome, so whatever. EVMU is now ACCURATELY emulating the exact LCD refresh update characteristics of the VMU's little LCD screen, which includes a small delay between when a pixel is turned off and when it's actually unlit o the LCD screen. This results in an effect called "pixel ghosting" which actually looks MUCH BETTER, as lots of games are quite flickery with the VMU's single buffer, and this completely smooths them out. Other games use this to create additional grayscale colors on the VMU, and they should now look correct.

    Screen Shot 2017-02-13 at 9.38.06 PM.png
    Screen Shot 2017-02-13 at 9.38.06 PM.png (23.67 KiB) Viewed 1577 times

    VMU Pacman with pixel ghosting enabled (default). Screenshot looks screwy, but it looks waaaaaay smoother, as Pacman no longer flickers in and out of existence.

    Screen Shot 2016-12-17 at 12.05.44 AM.png
    Screen Shot 2016-12-17 at 12.05.44 AM.png (29.11 KiB) Viewed 1577 times

    Pier Solar's minigame using the ghosting effect to extend the color palette to grayscale.

    Check out video footage of the effect here: https://www.facebook.com/elysianshadows/videos/1298680023508973/
  • Custom VMU Screensaver: So one of the funniest things EVER is that after finally getting the BIOS up and running after many painstaking days, I started to notice an obscure-ass bug where the VMU would just die after being left alone for 2 or so minutes... After several hours of debugging, I eventually realized that I'm fucking retarded... The VMU GOES INTO SLEEP MODE when it's left alone for 2 minutes... So it was 100% working as intended. LOL! But anyway, the screen just randomly dying on you isn't user-friendly... So I made the screensaver the ES-logo, which looks oh-so-trendy as a VMU screensaver... I want Patrick to animate it rotating in 3D or some shit, but he already has so much shit to do on ES that it will have to come waaaaaay later,

Oh yeah, don't remember whether or not I actually posted a picture of the Raspberry Pi build anywhere other than on social media...
Image

EVMU Project Home Page?
Is anyone interested in helping to create a simple web page to be the official home of EVMU? It's the most capable VMU emulator out there, and will soon be the go-to software suite for everything VMU-related, but unfortunately it has almost zero web presence right now, because it's basically just beta builds sitting in a public Dropbox link... I'm not really looking for anything too fancy, probably just a single-page, using the same back and front-end as elysianshadows.com and some kind of link on the main site navigation to it.

As always, builds should be in the Dropbox, and let me know if anything has reested! :D
Attachments
rPiBuild.jpg
(160.77 KiB) Not downloaded yet
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Tue May 09, 2017 8:36 am

So I found a dude online at the Shenmue Dojo who has been doing some really cool archival of Dreamcast VMU-based content from the Shenmue Passport Disc, and I offered to add some features to EVMU to help him out. If you want to see the whole thread, it's here:
http://www.shenmuedojo.net/forum/viewtopic.php?f=3&t=48925&p=1150959#p1150959

Here's the new features, as posted on Shenmue Dojo:
Falco Girgis wrote:Heya buddy, I have a surprise for you! I implemented the animated GIF exporting! This actually turned out to be a pretty sweet feature!

So I'm not exactly sure what file type "vms00.bin" is, but judging by the name, I'm assuming it's simply .vms. If that's the case, you are going to have to change the extension before trying to load it into EVMU, and I'm really not sure why the hell they are just using a .bin extension...

Once you have the emulator opened and the file loaded, there are a few features that are going to make your life so much easier.

Recording an Animation
From the file menu, go to Tools->Capture Animation->Record to begin recording, or simply push CTRL/CMD+R.
Image

You should see the red "recording" icon, and a little message. Once you see that, everything that's happening on the VMU is being captured for the animated GIF.

Once you're done capturing whatever it is that you want, either stop recording from the file menu or the shortcut again. The animated GIF should automatically be generated and should be opened with the default program. If you want to actually view the files, they're located at:

Windows: C:/Users/YourUserName/ElysianVMU
MacOS: /Users/YourUserName/ElysianVMU
Linux: /home/YourUserName/ElysianVMU

The files should be named the same thing as the ROM image, and every new recording should simply append a number to the previous recording output.

Halt and Advance Frame
I decided that I should also implement these two, because you might be capturing a very quick/precise segment of an animation, and you want to only record the relevant frames. By Halting the emulator execution, then slowly advancing the frames until you've run through everything you want to capture, you can more easily record precise segments.

From the file menu, the Emulation->Playback menu should have the actions for both Halting and Advancing the frame, or the shortcuts are F2 and F3 respectively.
Image

Note that "halting" or slowing down the execution does NOT actually effect the timing of the animated GIF output, so don't worry about screwing up the timing. "Advance Frame" basically advanced the emulator 1/20th of a second, which is usually a single frame for a ROM. This may be only half a frame for certain ROMs, so you may have to advance twice to get a full frame.

Note that the output GIFs are EXTREMELY optimized and efficient, since the VMU is at such a low resolution and only has a 2 color palette. You can record fairly long, complex animations without the file size getting more than a few KB. I figured that the exported resolution should probably say the VMU's native 42x38 to keep the file small and to allow you to stretch/scale as you see fit later on. Didn't want to introduce any inaccuracy at the raw output level.

Note that this whole feature was developed on MacOS, but it should work fine on Windows. Let me know if anything is wrong or you run into any bugs.

Here are a few animations that I captured:
Image
Image
Image
Image
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby dandymcgee on Tue May 09, 2017 7:51 pm

The GIFs are awesome dude!! I added a [ VMU ] tag on the forums that uniformly upscales them 2x (96px wide).



Click here to see the hidden message (It might contain spoilers)
It's slightly blurry because GIF is a raster format and doesn't scale well via "dumb stretch". That's why I kept it at 2x. You could probably write your own 2x, 4x scalers as part of you exporter that do a much better job.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
 
Posts: 4911
Joined: Tue Apr 29, 2008 4:24 pm
Location: New Hampshire

Re: ElysianVMU Pre-Alpha Release Testing

Postby Falco Girgis on Thu May 11, 2017 12:04 am

dandymcgee wrote:The GIFs are awesome dude!! I added a [ VMU ] tag on the forums that uniformly upscales them 2x (96px wide).



Click here to see the hidden message (It might contain spoilers)
It's slightly blurry because GIF is a raster format and doesn't scale well via "dumb stretch". That's why I kept it at 2x. You could probably write your own 2x, 4x scalers as part of you exporter that do a much better job.
:shock:

Well fuck me... That's sweet. It actually looks good!
"So what happens if the Elysian Shadows Kickstarter fails?"
Image
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
 
Posts: 10693
Joined: Thu May 20, 2004 3:04 pm
Location: Studio Vorbis, AL

Re: ElysianVMU Pre-Alpha Release Testing

Postby speud on Fri Oct 06, 2017 2:56 am

Hello,

first I'm glad to see the scene is still active :)

Is there any chance you release the source of your emu someday ? I'm quite interested by integrating a faster version in some of my old projects.

Keep up the good work and keep the dream alive !
speud
Chaos Rift Newbie
Chaos Rift Newbie
 
Posts: 1
Joined: Fri Oct 06, 2017 2:47 am

Previous

Return to Elysian Shadows Discussion

Who is online

Users browsing this forum: No registered users and 2 guests

cron