Blog

Happy 30th birthday

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.

Read more →
Featured image for article: Happy 30th birthday

A New Journey has begun

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.

Read more →
Featured image for article: A New Journey has begun

Crash on Snapdragon 8 Gen 3

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.

Read more →
Featured image for article: Crash on Snapdragon 8 Gen 3

Why D-pad on screen is so bad. How can I improve it?

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.

Read more →
Featured image for article: Why D-pad on screen is so bad. How can I improve it?

Vulkan Again

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.

Read more →
Featured image for article: Vulkan Again

A Happy New Year!

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.

Read more →
Featured image for article: A Happy New Year!

Yabasanshiro for handheld devices

[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.

Read more →
Featured image for article: Yabasanshiro for handheld devices

SH2 Cache

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.

Read more →
Featured image for article: SH2 Cache

Setup guide for Ayn Odin

[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.

Read more →
Featured image for article: Setup guide for Ayn Odin

Android 11 TV

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.

Read more →
Featured image for article: Android 11 TV

Plan for supporting Android 5.0 again

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.

Read more →

Memory Access Timing

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.

Read more →
Featured image for article: Memory Access Timing

64bit is faster than 32bit( slightly, not so mouch)

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.

Read more →
Featured image for article: 64bit is faster than 32bit( slightly, not so mouch)

Dive into Vulkan

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.

Read more →
Featured image for article: Dive into Vulkan

Move'em to GPU

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,

Read more →
Featured image for article: Move'em to GPU

Version 1.1.0 Released

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.

Read more →