skyfloogle / red-viper Goto Github PK
View Code? Open in Web Editor NEWA Virtual Boy emulator for the 3DS
A Virtual Boy emulator for the 3DS
Any chance of RetroAchievements being implemented?
Virtualboy has link cable functionality. Official accessory was never released, however enthusiasts made a cable and patched mario tennis to enable multiplayer. See https://www.retrorgb.com/virtual-boy-multiplayer-games-demos.html
Is it possible to create a vector matrix on 3DS, as it was in those distant days, from 1982 to 1985? The image will be more realistic than on a regular 3DS matrix. Am I wrong?
=====================================================================================
Since 1985, a red LED eyepiece display technology called Scanned Linear Array was developed by Massachusetts-based Reflection Technology, Inc. (RTI). The company produced a stereoscopic head-tracking prototype called the Private Eye, featuring a tank game. Seeking funding and partnerships by which to develop it into a commercial technology, RTI demonstrated Private Eye to the consumer electronics market, including Mattel and Hasbro. Sega declined the technology, due to its single-color display and concerns about motion sickness.
Can this be added to Universal updater
I want to thank you a million times over for making my dream come true. You're a hero, man.
I only have one small request. Can you make one of the triggers act as a fast forward button, preferably with the choice of hold or toggle in the settings? Thank you if you implement this, and thank you again for everything else!
3-D Tetris froze not very far into 3-D Tetris Type A mode. Playing on an original 3DS XL.
Sorry if this is a stupid question since im not very experienced with dealing with source code, but when building from source I get this error:
red-viper/source/common/vb_set.c:8:10: fatal error: inih/ini.h: No such file or directory
In an attempt to fix this, i installed the inih packages from my package manager, but the error persists. I went to see where the makefile sources the include directories, and I put the ini.h headers in /opt/devkitpro/ibctru/inih and it gives me a different, still inih related error while building. Am i missing a package or something? I can't seem to find any devkitpro package with inih and running "git submodule update" does not appear to do anything.
I feel like I'm missing something obvious but i didn't know how else to figure it out than open an issue. Tried building on both msys2 ucrt64 and arch linux.
Hi, since there is no way to psvita for virtual boy it would be interesting to see a porting of this homebrew, possibly with state saves
i cannot load a ips rom hack please add support for it
I think it would be an improvement to be able to completely remap the controls including the controls on the touch screen, preferably on a game by game basis. My ideal would be the Right D Pad mapped to the face buttons, A & B are mapped to ZL and ZR, and the touch screen simply pauses the emulator. But then for games that don't use the Right D Pad, A & B would just be mapped to A & B, hence the option for game-specific remaps.
There could be a setting to select the language or read it from the console settings.
It would be great if there were an option to set custom buttons to be bound to each VB button
On some occasion when pressing the "shot" button while playing golf, the entire field turns black, goes back to color when I exit out the option. Not sure if this is part of the game or from the emulator. Using Old 2DS
Hi - awesome emulator. Thank you so much. Have some problems playing red alarm:
the voice samples are missing
not possible to finish first stage, freeze, but not reproducible as always on different parts
Using New 3DS XL
The control in game Red Alarm is quite difficult. please add personalized button palette and allow use ZL ZR button🙏
Would be nice to be able to store zip file of a rom and it decompresses at load time, The roms arent that big so should be fine right?
For potential VUEngine integration.
Was suggested elsewhere, putting it here so it doesn't get lost.
Running on 9f7fc6a [3dsx build]
I got a DRC crash after playing 3-ish levels in a row at a screen transition in Level 3 in Virtual Boy Wario Land.
It threw this debug txt file at me, so here that is. This happened to me on the current release build once too but I don't think it saved the debug text file that time for whatever reason.
It's fairly easy to reproduce, just sit down and play VB Wario Land a while and usually you get a crash at a screen transition in Level 3 or Level 5.
I get into the redviper and load rom, select oneand it just sits there and freezes the whole 3ds. I have the cia and the 3dsx inside the 3ds folder i made.
The emulator currently crashes when code is executed from any location other than ROM. In the past doing so has indicated an emulator bug, but Formula V does this occasionally and intentionally, and I understand other currently unreleased homebrew does as well.
The current dynarec basically assumes all code is in ROM. I'm not sure how easy it would be to support volatile code in it.
An interpreter would solve this issue, especially given these bits of code are generally not very large. It might be a large effort, but it would avoid increasing the dynarec's complexity, and interpreting the code every time is probably faster than recompiling it every time.
When booting Wario Land, the application crashes everytime. I have not tested with other games yet. I'm on an O3DS, with the latest stable version (2024-03-24).
Here's the dump file:
crash_dump_00000000.dmp
EDIT: this only happens on the .cia version of the emulator, the .3dsx boots the game just fine
Will mean doing the mixing ourselves rather than relying on the DSP to do it.
First off - awesome job! I know what's involved with these as I've been involved with Stella (Atari 2600 emulator) since the 90s when I ported it to OS/2.
I find the ROM picker to be very touchy - inevitably I'll accidentally launch a ROM while swiping up/down to scroll to a specific game.
I suspect part of the issue is I'm using my finger, instead of a stylus, to scroll the list. I use an after market grip/handle on my 3DS else my hands cramp, and the grip blocks access to the stylus slot.
If possible could the ROM picker be updated to also support the D pad and A/B buttons to maneuver thru the directory structure, select a game, and launch it?
Thanks!
Loading 3D Tetris as your first ROM leads it to an arm11 crash during the intro, before the title screen (dump). Loading it after some other game is loaded gives it varying degrees of stability, from working seemingly just fine to crashing after a couple minutes of gameplay seemingly at random, with an error popup (changing ROMs to 3D Tetris while in Virtual Boy Wario Land’s post stage completion treasure screen seems to make for a decently stable run, fwiw).
Consider this a "nice to have" backburner issue.
Apparently it is technically possible to fudge the refresh rate of the 3DS screen. This is done in the (closed-source) emulator ZXDS, which emulates the ZX Spectrum--a computer that was really only successful in PAL50 territories, where most of the software is designed around 50 Hz. As far as I know, there are no open-source implementations of the refresh delay implementation used by ZXDS, so unfortunately there's not much I can point to as far as how this can be achieved.
The ZXDS author did write down a lot of their process when developing the original DS version of their emulator which you can read here, but that page has not been updated since the emulator was ported to run on the 3DS. Forcing the original DS screen into refreshing at 50 Hz involved (ab)using the VCOUNT
register, which is able to delay refreshes for the purpose of synchronizing wireless multiplayer games. I don't know whether the 3DS has something equivalent.
The ZXDS changelog is behind a Patreon subscription, but the version 2.0.1 changelog can be found online and implies there are at least two possible methods of delaying refreshes, one of which was problematic on certain 3DS models:
Changelog:
- Fix top screen issues of 2DS and 3DS XL models by slowing the LCD display differently. Thanks Nige.
- Disabled turning off of bottom screen backlight on 2DS as for some reason it affects both screens.
- The optional ZL and ZR buttons are now bound to quick load and quick save actions, respectively.
- Considerably increased speed of scanning directories.
- Few more subtle changes (async file flush, display speed adjustment only at normal speed).
Speaking for myself, I really can't tell the difference while playing games, 50 FPS displaying with duped frames at 60 Hz is fine, especially considering the more advanced games like Red Alarm don't run at a full 50 anyway. Still, it would probably be even better to match the refresh rate to the original console for greater accuracy.
EDIT: Talking to asiekierka, I see that this has already been shared with you in much greater detail and that there is an open-source implementation in atari800-3ds. For the benefit of anybody else who happens to find this, I think asiekierka/atari800-3ds@133bb73 is the commit where the magic happened.
Virtual Lab exhibits a bug where the gameplay locks up but the music and background continue. It’s a falling-block puzzle game, so imagine you’re playing Tetris and the next piece appears at the top of the screen but never starts falling. You can’t control the game at this point including pressing start to pause.
Loving the app so far; I’m having a great time playing Mario Clash and Wario Land.
As the title says, Red Alarm has a tendency to crash when playing. Usually I've had it crash during the face miniboss in Stage 1, but I did manage to make it to Stage 2 once before it crashed.
I'm unsure of the cause of this crash, but I will state that I am playing on a New 3DS XL running Luma3DS v13.0.2 with the 3D on.
I also have "Redirect app. syscore threads to core2" turned on, will test with that off just to see if that affects anything. EDIT: Red Alarm still crashed with this turned off in the Luma settings.
It seems if the 3D is turned on, it only seems to simulate one "depth" instead of adjustable "depth" (image separation?) via the slider. I tend to prefer a pretty shallow 3D compared to the setting this emulator uses. Will the adjustment become available in a later revision?
I know this isn't exactly a big issue given that this emulator is easily installable via the .CIA and .3DSX files, but I think having the option to install it via Universal Updater would be ideal. Not only would it allow for more users to discover it, but it would also ensure that more people download future updates of the app.
buzz on home-brew rom not working .
Could you maybe add a fix for Virtual Warzone? The best 2023 Homebrew out there
While changing the color during is neat, I'd love to see a mode that has a gradual color shift during gameplay, like on those gaming laptops if it's possible that is.
Could you please add save states?
Hello, first I want to give thanks for your awesome work : it is a awesome way to could enjoy this underrated machine.
I want to suggest the option of making it could use different colors as it does some gb emulators.
It would awesome user could do "patches" and maybe add this feature.
Maybe it could be implemented on a way than homebrew developers could use it when compilate their stuff allowing keep the colors on a external patch and their binary go on full 100% virtual boy compatibility. (I suppose it would be the part where the sprites are converted to vb format when the extra data would keep on the ips file).
Thanks
I've been noticing some ghost effect on the upper screen when using Red Viper. At first I thought my 3DS was broken or something. Then I learned that this is normal when the image has contrast, like in this case, a 100% black background. The image of one eye slightly bleeds into the other eye.
Maybe the background color could be changed to something less dark?
Again, this is not a Red Viper issue at all, just asking if this is possible or makes sense.
Thanks.
I went to close the emulator by pressing the home button. Just about a second later, the system crashed. It doesn't seem to have done any damage, but it was certainly a scare.
Please add a qr code for the .cia download link so people can easily install it via FBI's remote install function.
It looks like the shades of red are not displaying correctly in Virtual Fishing (EDIT: and other Locomotive games). Everything with the "one above black" shade, used in Virtual Fishing for highlights and backgrounds is an extremely dim shade of red somewhere in the decimal 16-17/255 range, making it difficult to tell which menu item is selected, etc.
In these screenshots, FEMALE
and START
are (barely) highlighted on the respective images. These screenshots come from the English translation patch available on virtual-boy.com for ease of navigation, but the same issue occurs in a clean Japanese ROM.
Here's some Mednafen shots:
You can see here that I have MALE
and START
highlighted on the respective screens, the name plate and RECORDS
section have a visible background color, etc.
Virtual Fishing (Japan).vb
(matches No-Intro CRC32: 526CC969
)Virtual Fishing (Japan) [English Translation].vb
(above ROM with English patch applied)Same behavior on all versions of Red Viper I've tested; this does not appear to be a regression.
I just noticed that V-Tetris also displays dimly and has barely-visible "one-shade-above-black" display. The Mode Select menu in V-Tetris has a BPS (Bullet Proof Software) logo scrolling across the background which is mostly obscured in Red Viper. Comparison shot from Mednafen.
Locomotive was also responsible for SD Gundam: Dimension War, so that's another case that may be (EDIT: definitely is) impacted by the same issue.
Have been using this emulator for a while. Every once in a while, I‘m playing 3D Tetris, and a/v crashes, and the entire system stops responding. New3DSXL if you need the model.
I can usually just leave the volume slider at the same level for everything on the 3DS. But for some reason Red Viper is louder than other things I use on the 3DS. I have to move the 3DS's volume slider down every time I use Red Viper, and move it back up when using anything else.
It might be a minor inconvenience overall, but it would be appreciated if there was a way to change volume level in Red Viper itself. I have had sliders stop working correctly on other devices from frequent adjustment so I would prefer not to be having to adjust the physical slider on the 3DS especially for that reason.
On my new 3ds, the software takes so long to close, im convinced the system froze and I it power off. Not sure if this is normal for now or not.
Virtual Boy always outputted two images: one for the left eye and one for the right eye. Red Viper, when the depth is turned off, currently shows just the right eye information. It would be nice if the user could choose which one is the one used when the 3D is turned off (or unavailable, for our 2DS users).
When pressing the pause button in the default touchscreen configuration, the reset button is positioned exactly where your finger is, and doesn't have a confirmation. Could this be repositioned?
Red Viper is complaining that it doesn't have audio, and if I try to load any game without sound it will freeze when you load a rom.
I dumped my audio with DSP1 3DS and it still doesn't detect the audio.
What do I need to do?
Could be useful for 2DS owners and potential ports to other hardware.
Some code for anaglyph drawing was added in 754362d, but it's missing a UI frontend.
Anaglyph mode inherently conflicts with all current video settings (colour filter, default eye, and depth slider mode since the 2DS doesn't have one). It would probably make sense to reflect this in the UI design somehow.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.