This web page is a part of buffi's web ring
Categories
Shmups Arcade

Flying Shark running on a CV1000 Ibara PCB

We live in a weird time where we can talk to cloud robots and they spit out video game conversions for us. Everything is getting static recompilations and CV1000 games now even works on Mister.

Having worked as a software dev for close to 20 years, I dunno how to feel about all programming nowadays more or less using LLM’s. It’s hard to deny it’s pretty damn efficient at getting shit done though.

So I thought… guess it’s time to embrace the slop. Let’s make some dumb shit that I’d never do otherwise… and here we are.

Enter, “Flying Shark : Slop Label”… which is Flying Shark running on a CV1000 PCB.

TL;DR for getting it running

  • Download this zip containing the engine for running stuff.
  • Slam that in a folder with fshark.zip, fsharkb.zip and ibarao.zip from the latest MAME romset. You’ll have to find those roms yourself you filthy fucking pirate.
  • Run:
    python3 build_fshark.py fshark.zip fsharkb.zip ibarao.zip

Running in MAME (if you are a normal person):

mame ibara -rompath out

Running on PCB (if you are cool):

Write out/fshark_u4.bin as U4 using JTAG to a Ibara PCB. 

If you have one of the CV1000 multis, it will probably run fine on that too (not tested).

So… how did we end up here?

I just asked Claude to do it for me.

… OK maybe not entirely that easy, but also not entirely untrue. I threw this shit together with Claude Fable 5.1 in about a week of messing around on evenings.

Getting things working with the cv1000 driver in MAME was fairly easy, but getting everything working on an actual PCB was unsurprisingly much harder. Early attempts had… interesting issues.

After lots of tweaking and iteration, graphics started looking better and better…

Eventually things looked great, but the game ran way too slowly (since after all the M68000 is basically emulated).

A few evenings of tweaking stuff, and testing things with various debug overlays, and things were MOSTLY playable though.

After a lot of trial and error, I ended up with something that plays fairly well! It will slow down on busy sections, but I’ll just pretend that it’s intentional CV1000 slowdown, since I know that’s what all the Cave sickos are into.

How does it run?

At startup, the Blitter from Ibara is injected into the EP1C12 used as Blitter, and the ROM is copied over to RAM, similar to how real CV1000 games do their booting.

Unlike regular CV1000 games, this port does not use the graphics RAM of U2 at all though. Since Flying Shark is an old small game, the graphics can live in U4 together with the code.

Each frame the following happens:

  • An M68000 emulator (Musashi) runs a frame of the program ROM.
  • All video writes (tilemaps, sprites, palette, scroll…) gets written to memory which gets translated to a command list for the Blitter. Uploads to VRAM only happen when a tile appears in an uncached color combination, or when a tile changes color.
  • Anything the original game hands off to the TMS320C10 math coprocessor just runs as native C code instead, rather than emulating that chip.
  • The Z80 Audio CPU is only minimally emulated, since the game ROM will wait for it. It’s not used for music playback. Each of the 25 sounds of the original game is mapped to a sound sample of the Ibara sound ROMs.
  • Controls are mostly directly mapped, but the port adds 10hz autofire for button 3 and 30hz autofire for button 4.

But why?

It was pretty fun.

Changelog

25 Sep 2026: V1 release
26 Sep 2026: V2: Bugfix for audio cutout issue

Categories
Arcade Research Shmups

Cave CV1000 Video Timings

Realized I never looked at the video timings of Cave CV1000 back when I was looking at how the blitter worked, so went ahead and did that.

Results are at https://github.com/buffis/cv1k_research/tree/main/Video_Timings and they have been merged into MAME as of yesterday.

The quick summary is:

  • Pixel clock: 6.4MHz
  • Lines per frame: 262 (including sync)
  • Lines of VSYNC: 3
  • Active lines (rest is overscan): 240
  • Pixels per line: 407 (including sync)
  • Pixels of HSYNC: 29
  • Active pixels per line (rest is overscan): 320
  • Framerate: 60.0183806291 Hz (6,400,000 / (262 * 407)

For people emulating the games, this should not have any effect really. This is mostly for documenting the behavior of boards, and for people doing stuff such as custom video scalers.

Categories
Arcade

Arcades in Guangzhou China – Now and Then

I’ve been to Guangzhou six or so times now, and I try to pop into their arcades to check out what’s available over there when I visit.

I thought it might be interesting to show how things used to be, and how they are now, so I’m gonna make a few posts that are basically picture dumps from some Arcades in Guangzhou.

All of these are typical “Mall Arcades” from different shopping malls.

Not really aiming to do much of a writeup, so enjoy the pictures.

How it used to be (back in 2013-2015 or so)

Back in ye olde days of 10+ years ago, the arcades still had plenty of old CRT sitdown cabs with old games. Lots of Neogeo, PGM and various boards. Just kinda a bit of everything.

There were some official Music Cabs around like Jubeat and Reflec Beat…

… but also a bunch of bootlegs like this fake Jubeat

… and plenty of Chinese originals like whatever this is, as well as a bunch of Driving games.

Condition of cabs was usually kinda shit, see this closer image for a good example. Lots of burnmarks from smokers and whatnot.

Overall, the variety here for classic arcade games was very high! Some games were also weirdly popular in China compared to the west. For some reason they really loved King of Fighters 97 over there instead of 98 and 2002 which are more popular in the west.

What its like now (2026)

All retro-style cabs seem gone. I didn’t see a single CRT cab. The only sit-down lever+button cabs I saw were some mame cabs like these ones:

There were however still a bunch of cool games.

For Music games, all of the places I went to had some officially licensed Bemani/Sega cabs licensed to China by Wahlap. There’s also some fun clones available of various games.

I did pop into three different Arcades on this visit.

嗨森汇 HAPPY 动漫娱乐

Medium size Mall arcade with pretty good variety. Good selection of music games.

Funloop Land

Technically I think Funloop Land is a chain of arcades run by Wahlap, and this is just one of those from some mall. Pretty small place, but some fun games in there.

Grandview Mall Cyber Street

Now this is a proper cool place! The entire arcade feels very futuristic, and especially the Entrance. Lots of Music games and this place is significantly larger than the other two. Recommended.

Not a single lever+button cab in sight though. Such are the times.

Quick video walking through Cyber Street

Shot a quick video of walking through the arcade mentioned above.