On November 22, 1994, the Sega Saturn was launched. Equipped with unprecedented multimedia capabilities, it quickly became a playground for game development experimentation, inspiring countless innovations and leading to the creation of many timeless masterpieces.
Finally, Yaba Sanshiro was released in the Apple App Store! You can play SEGA Saturn games on your iPhone or iPad or Mac. This version only includes basic features to facilitate approval. If there is demand, we will continue to expand it.
Devices equipped with the Snapdragon 8 Gen 3 chipset, including models like the Galaxy S24 and Redmagic 9 Pro, are experiencing crashes when initiating games. It appears that the root cause of these issues may be linked to a bug within the SPIR-V compiler specific to these devices. I have reported this issue to Qualcomm via their developer forum, but have yet to receive a response.
I have heard complaints from many people about the on-screen D-PAD of YabaSanshiro. Indeed, it's terrible. There's no way this flat panel can beat a device designed to be physically easy for humans to operate. However, it's worth the effort to get as close as possible. I have considered why the on-screen D-PAD is terrible, based on the differences with the real Sega Saturn's D-Pad.
I was impressed that the retroid pocket 3+ runs Yabasanshiro at full speed. But I also noticed some features like tessellation do not work, so I tried to implement them for this device. But these issues happened inside of the OpenGL ES driver and seemed hard to fix by me. So I try them on my Vulkan code. Then it's easily fixed. I found that I am in a new era. OpenGL ES is sunsetting. GPU maker will not support OpenGL ES drivers anymore. VDP(SEGA Saturn Video processer) emulation with Vulkan is mandatory to adapt to this era.
Handheld game devices are around the world! In 2022 there are so many of them were born. AyaNeo, Onex Player, Steam Deck, Ayn Odin, RetoroPocket 3+. These devices have good enough Soc to emulate SEGA Saturn games, and the build quality is high. My dream, 'SEGA Saturn anywhere,' comes true.
I obtained [AYANEO NEXT](https://next.ayaneo.com/) and test YabaSanshiro and fix bugs. Now it's playable. You can get the Yabasanshiro handheld version here.
[Ayn Loki](https://www.ayntec.com/pages/loki), [Aya Neo](https://www.indiegogo.com/projects/ayaneo-world-s-first-7nm-handheld-gaming-device/x/26186747#/), [Win600](https://anbernic.com/products/new-anbernic-win600), [ONEXPLAYER](https://www.one-netbook.jp/landing/one-xplayer/).2022 is the year of handheld windows PC.It's exciting that play PC games anywhere.But YabaSanshiro for windows is built using the old QT library, and you need a mouse and keybord to use YabaSanshiro. It's not easy to play games on Windows version of Yabasanshiro.
SEGA Saturn has two CPUs. Each CPU has cache memory to enhance the throughput. YabaSanshiro does not emulate that until version 1.7.6, Because each CPU accesses the same memory space and it should be the same data, and emulating cache needs many CPU cycles for each memory access. But I noticed that some games are programmed on the assumption that the data referenced by each CPU is inconsistent and the difference in timing with and without hitting the cache.
[Ayn Odin](https://www.ayn.hk/Odin/) is a handheld android device for gamers. This young device has enough SOC to run Yaba Sanshiro. But I found that the default setting of Yaba Sanshiro runs not well. So I want to let you know how to optimize the setting for a better game experience. With this setting you can play Virtua Fighter 2 with 60fps constantly.
Nvidia Shield TV is upgraded to Android 11. Since Android 11 does not allow direct file access, you can not play games in the way you did. YabaSanshrio 2 Pro 1.7.1 will support Android TV 11. But since Nvidia Shield TV does not implement the "Storage access framework" property, you need additional operations.
Currently, Yaba Sanshiro 2 crashes when you run it on Android 5.0, 5.1 and 6.0 , Because these device does not support Vulkan. To support less than Android 7.0 devices again, we are going to release it in a trickly way.
In the investigation for issues like [#679](https://github.com/devmiyax/yabause/issues/679) and [#664](https://github.com/devmiyax/yabause/issues/664), I found strange behaviors in SEGA Saturn emulation of Yaba Sanshiro. DMAC(Direct Memory Access Controller) starts memory copy despite CD-ROM data is not read yet. The master CPU start copy to VRAM before the slave CPU finishes copying data to the source region. I write code that reproduces these behaviors and runs it on the real SEGA Saturn. it shows that memory access timing is the cause of this matter.
I've been implementing the new dynamic recompile CPU emulator for ARM64v8a. It means Yaba Snashiro will run on 64bit CPU natively. The result is 64bit code is faster than 32bit code slightly, not so much. But I'm happy. Slow progress is still progress.
Recently I'm trying to develop the new graphics emulation core using Vulkan. Vulkan is the latest graphics API which can access GPU more directly than OpenGL . Today I successes to render NBG0! it's need much more time to make it playable. since speed is the biggest problem of SEGA Saturn emulation, my effort will be worth wile.
I rewrite almost of the shader code. The concept of this change is 'Move'em to GPU'. it means that moving code running on CPU to GPU. In general speaking, GPU is fast because of their parallel processing. CPU has just 2-4 cores, on one hand, GPU has hundreds or thousands cores. Yeah, That's great indeed. There is one more thing GPU is superior than CPU. That is GPU can compile and load program dynamically. You can run the minimum code when you need. That's very important for a complicated system like SEGA Saturn emulation. For example, VDP2(Sega Saturn Display unit) has 3 blend modes, 4 blend condition options, and 3 color mode. That means you need 3x4x3=36 branches to draw just one pixel. On CPU you need to prepare all branches you need statically. it really complicated and makes emulation slow down. On GPU, because you can dynamically compile shader code, you can organize the parts of the code and run the generated code straightly( without branches ). For This 'Move'em to GPU' concept,
Yaba Sanshiro has the cloud save data function. If your local storage does not have save data, you can copy back them from cloud storage. You can also save your cheat code to the cloud storage. In addition, you can share your cheat code. Please rate the cheat so that good cheats can be found easily.