Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .beta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ gae1: [ pocket ]
blkout: [ mister, pocket ]
gals: [ mister, pocket ]
pktgal: [ mister, pocket ]
meikyu: [ mister, pocket ]
rastan: [ mister, pocket ]

20 changes: 20 additions & 0 deletions cores/meikyu/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# JTMEIKYU FPGA core compatible with the Meikyu Jima (Irem M77) hardware

This verilog implementation is compatible with all major retro FPGA platforms, particularly MiSTerFPGA.

You can show your appreciation through
* Patreon: https://patreon.com/jotego
* Paypal: https://paypal.me/topapate
* Github: https://github.com/sponsors/jotego

# Disclaimer

This work is for research and historical purposes. This work itself does not contain copyrighted software and should not be packed or distributed with illegal copies of the copyright-protected software.

# Known Issues

None.

# Compilation

Refer to [JTFRAME](https://github.com/jotego/jtcores/tree/master/modules/jtframe) for compilation instructions.
34 changes: 34 additions & 0 deletions cores/meikyu/cfg/files.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
meikyu:
- get:
- jtmeikyu_game.v
- jtmeikyu_main.v
- jtmeikyu_video.v
- jtmeikyu_scr1.v
- jtmeikyu_colmix.v
vigil:
- get:
# shared with Vigilante, reused as-is (identical hardware)
- jtvigil_snd.v # YM2151 + Irem M72 PCM sound
- jtvigil_pcm.v # M72 PCM DAC (instantiated by jtvigil_snd)
- jtvigil_obj.v # parametrized: XBASE/VSCORE/CODE_SWAP
jtframe:
- from: cpu
get:
- jtframe_z80.yaml
- from: clocking
get:
- jtframe_cen24.v
- jtframe_cen48.v
- from: ram
get:
- jtframe_obj_buffer.v
- from: video
get:
- jtframe_vtimer.v
- jtframe_linebuf.v
- from: video/tilemap
get:
- jtframe_tilemap.v
- get:
- jtframe_sort.v
jt51:
34 changes: 34 additions & 0 deletions cores/meikyu/cfg/macros.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[*]
CORENAME=JTMEIKYU
JTFRAME_BUTTONS=2

# Meikyu Jima (Kickle Cubicle), Irem M77. Single game, no background layer.
JTFRAME_WIDTH=384
JTFRAME_HEIGHT=256
JTFRAME_COLORW=5
JTFRAME_DEBUG_VPOS = 6

# JTFRAME_STATUS
# No JTFRAME_PLL: the default 48 MHz clock is exact for this PCB.
# Meikyu Jima's video is on a 24 MHz XTAL (Vigilante's is 18.432 MHz, which is
# why that core needs jtframe_pll6144 -- do not copy it here).
# PCB pixel clock = 24/3 = 8.000 MHz, and clk/6 = 48/6 = 8.000 MHz exactly.
# htotal 512 (384 active), vtotal 284 (256 active)
# -> 15.625 kHz H, 8e6/(512*284) = 55.0176 Hz V
JTFRAME_PXLCLK=8
JTFRAME_RATE=55.02

# ROM file layout
# BA0, main CPU ROM (P0+B0+B1 = 0x28000)
# BA1, sound CPU and PCM
# BA2, chars
# BA3, sprites
JTFRAME_BA1_START =0x28000
PCM_START =0x38000
JTFRAME_BA2_START =0x48000
JTFRAME_BA3_START =0x88000

# Scene saving
debug JTFRAME_IOCTL_RD=4096
debug JTFRAME_IOCTL_RD+=2048
debug JTFRAME_IOCTL_RD+=4
50 changes: 50 additions & 0 deletions cores/meikyu/cfg/mame2mra.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[global]
author=["jotego"]

[parse]
sourcefile=[ "vigilant.cpp" ]
# Meikyu Jima only. mustbe.machines matches whole families, so the clone
# must be listed explicitly: skip.bootlegs only looks at the MAME description,
# and kikcubicb's is "Kickle Cubele" (the "bootleg" tag is in the manufacturer
# field). It also needs its own ROM_RELOAD handling -> follow-up.
mustbe.machines=[ "kikcubic" ]
skip = { bootlegs=true, setnames=[ "kikcubicb" ] }

[Audio]
volume = [
{ machine="kikcubic", value=0x59 },
]

[buttons]
# Kickle freezes enemies into ice cubes and raises/melts ice pillars.
# Names are used verbatim (no trimming), so no spaces around the comma.
names = [ { names="Freeze,Pillar" } ]

[rbf]
name="jtmeikyu"

[dipsw]
bitcnt = 16
# Coin Mode only picks between the Coin A/B and Coinage tables, both deleted.
# Invulnerability is a cheat, not a player-facing setting: dropped so it cannot
# be switched on by accident. MAME's default for the bit is Off, which is what
# the MRA now hardcodes.
delete = [ {names=[ "Unused", "Unknown", "Coinage", "Coin A", "Coin B",
"Coin Mode", "Invulnerability*" ]} ]

[ROM]
regions = [
{ name="maincpu", no_offset=true },
{ name="soundcpu", start="JTFRAME_BA1_START" },
{ name="m72", start="PCM_START" },

{ name="chars", start="JTFRAME_BA2_START", width=16, no_offset=true },
{ name="sprites", start="JTFRAME_BA3_START", width=16, no_offset=true, sort_even=true },
{ name="plds", skip=true },
{ name="proms", skip=true }
]

order = [
"maincpu", "soundcpu", "m72",
"chars", "sprites"
]
61 changes: 61 additions & 0 deletions cores/meikyu/cfg/mem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
params:
- { name: PCM_OFFSET, value: "(`PCM_START -`JTFRAME_BA1_START)>>1"}
clocks:
clk:
- freq: 3579545
outputs:
- cpu_cen
- fm_cen
audio:
rsum: 47k
gain: 0.4
channels:
- { name: pcm, data_width: 8, rsum: 22k, rc: [{r: 4.7k, c: 10n }, {r: 22k, c: 4.7n}], pre: 0.9 } # eq. filter
- { name: fm, module: jt51, rsum: 22k, rc: [{r: 4.7k, c: 2.2n}, {r: 25k, c: 1n }]} # eq. filter
sdram:
banks:
- buses:
- name: main
addr_width: 18
data_width: 8
- buses:
- name: snd
addr_width: 16
data_width: 8
- name: pcm
addr_width: 16
data_width: 8
offset: PCM_OFFSET
- buses:
- name: scr1
addr_width: 18
data_width: 32
gfx_sort: hvvvx
- buses:
- name: obj
addr_width: 19
data_width: 32
gfx_sort: hhvvvvx
bram:
- name: vram
addr_width: 12
data_width: 8
rw: false
ioctl: { save: true, order: 0 }
dual_port:
name: scr1
addr: "main_addr[11:0]"
din: main_dout
dout: scr1_dout
rw: true
- name: pal
addr_width: 11
data_width: 8
rw: false
ioctl: { save: true, order: 1 }
dual_port:
name: pal1
addr: "main_addr[10:0]"
din: main_dout
dout: pal1_dout
rw: true
122 changes: 122 additions & 0 deletions cores/meikyu/cfg/msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
\BMeikyu Jima\W FPGA core
Irem M77 (1988)
By \GAndr\Wea Bo\Rgazzi\W
on the \RJTCORES\W framework
by JOTEGO + community

Reviewed by Jose Tejada

\B______ \RDIRECTORS\B _______\W
80's spaceman Bender
Boogermann Cornelle Janse
DJ Lethal Fabio Michelin
Andrea Bogazzi Filip Kindt
Frederic Mahe
Fulvio Venturelli
Georgi Rakidov James D
Jent Ksenia Anastasia
Luis Massot M. Fornasini
Martin Birkeldh Martin Donlon
Michael Yount Skutis
Trent Reznor Tulio Adriano
edonkey2000 f3bandit
kccheng Gu Youqiang


\BThanks to\W
\R Alexander Facchini
\RAlfred N Alon Faifer
\RBigRedPimp Blue Abs
\RBob Gallardo Brian Sallee
\RCharles Dreiss Conor Nash
\RDaithi Dan Avedikian
\RDaniel Bauza Danny Garfield
\RDrewtoriousFGC ER
\RHalla Harper Reed
\R Henrik Nordstrom
\RIvan Perez Jacob Jewell
\RJim Sprigler Jim Weinhart
\RJo Tomiyori Joe Castle
\RKyle Mickley LaNaveRETRO
\RMatt Hayden Mom
\RMycah Mattox Nick Chapman
\RPD Lee Pelayo Marinas
\RPeter Vessenes R. Martinazzo
\RRafael Vitorio Rautz
\RRenaissance 2K RetroWilly
\RRobert Moran Sayit BELET
\RStrong Badam Tarnjeet Bhachu
\RTej Bilkhu TheJesusFish
\RZom aoalej
\Rblktiger brad
\Rdannahan oldmanoftheSEA
\Rpoppunmori qwupz

\B_________ AND __________\W
ARCADEAGES Adam Davis
Adrian Nabarro Anders Rensberg
Andy Palmer Andyways
Ayoub Zebian Blackstar
Bryan Adams Carrboroman
Chi Wai Tran Chris Doyle
Chris Harvey Christian
DMG Dan Bayley
Dana Ross Daniel Cortes
Darren Chell Dave Sasser
David Moylan Dean Winger
Don Gafford Ed Balan
Eduardo Javier Edward Rana
Fred Jorge Gus Douboulidis
Heihachi
Hendrik Osterholz
INAKI ECHEVARRIA
Ian Court JFRoco
JPS (RetroFPGA) James Stroup
Jeffrey Haas Jo le Zef
Joe Tassone JoeAverage
Joeri van John Casey
John Silva Juan Sandoval
JuanRa Keith F. Kelly
Krycek7o2 Leslie Law
Lukas Hinterleitner
M. Ferguson MakeshiftMoney
Marcelo C. Marcus Sid
Martin DiPalma Matt_Rant
Matthew Young
Michael Blackman
Michael Ferguson
Michael Fleisher
Michael Johnson Mike Phan
Miles Morales Nima
Nunzio Mannino Oliver Jaksch
Oscar Laguna Per Sweden
PsyFX RetroGameBro
Retro_Brewz Retroludo
Richard MS Rob Jenkins
Robert MacLean Roman Buser
Shane Lynch Simon
Steven Wilson The Collector
Theodore Huber Thompson Orcino
Tony Richardson Torren Beitler
Ultrarobotninja Vitor Duarte
Younghoon Gong albertprime
amoore2600 elrobertocarlos
eskwadrat hyp36rmax
nullobject qzxcvbn
ultimatekd

\WS\RA\GL\BA\WM\RA\GN\BD\RE\GR
________________________

- Beta version -
Do not distribute


- MiSTer -
Place jtbeta.zip
in games/mame
do not unzip it

- A. Pocket -
Unzip jtbeta.zip into
Assets/jtpatreon/common
1 change: 1 addition & 0 deletions cores/meikyu/cfg/reg.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
vigilant:
Binary file added cores/meikyu/doc/board-detail1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cores/meikyu/doc/board-detail2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cores/meikyu/doc/board-soundxtal.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cores/meikyu/doc/board-top.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added cores/meikyu/doc/board-xtal24.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading