XEiJ (X68000 Emulator in Java)- XEiJ - STUDIO KAMADA

Version : 0.26.03.28 TEST バージョン : 0.26.03.28 TEST

Author : Makoto Kamada 作者 : Makoto Kamada

Website : https://stdkmd.net/xeij/ ウェブサイト : https://stdkmd.net/xeij/

### Table of contents 目次

1. Introduction はじめに
2. Recent changes 最近の更新
   - 0.26.03.28 TEST
   - 0.26.03.08
   - 0.26.02.08
3. Past changes 過去の更新 ▶
4. Download ダウンロード
5. Install インストール ▶
6. Explanation of menu メニューの説明 ▶
7. Configuration file 設定ファイル ▶
8. Parameters パラメータ ▶
9. Source code ソースコード ▶
10. Functions and features 機能と特徴 ▶
11. About IPLROM 1.6 IPLROM 1.6について ▶
12. Explanation of misc/* misc/*の説明 ▶
13. Execution examples 実行サンプル ▶
14. Try to run the NetBSD/x68k NetBSD/x68kを動かしてみる ▶
15. Reference materials 参考資料 ▶
16. Link collection リンク集 ▶
17. License / Copyright / Disclaimer 使用許諾条件/著作権/免責事項 ▶
18. Acknowledgement 謝辞
19. Contact information 連絡先

## 1. Introduction はじめに

XEiJ (X68000 Emulator in Java) is an experimental X68000 emulator written in the Java language. Although XEiJ is an emulator, the sameness to real machines over the details of peripheral circuits is not necessarily top priority. I enjoy thinking new form of X68000 rather than copying old form. When I hit on an idea of an implementation method or a new function, I begin to write a program first of all even if I can not see its entire structure. If the idea goes nowhere, I put it aside until another idea occurs to me. I repeat such things. As a result, many unfinished parts are seen here and there. But I believe that it is meaningful to release XEiJ to the public if any comment in the source code helps someone. XEiJ (X68000 Emulator in Java) は Java 言語で記述された実験的な X68000 エミュレータです。エミュレータといっても周辺回路の隅々まで実機とまったく同じものを作ろうとしているわけではなく、どちらかと言えば X68000 の新しい形を考えることを楽しんでいます。実装方法のアイデアや新しい機能を思い付いたら全体像など見えなくてもとりあえずプログラムを書き始め、詰まったらまた何か湧いてくるまで脇に置いておく、そんなことを繰り返しているので ソースコード は作りかけのところばかりですが、注釈のどれか 1 つでも誰かの役に立つことがあれば公開する意味があると思っています。

## 2. Recent changes 最近の更新

### 0.26.03.28 TEST

This is a test version. New features may be substantially changed or removed in the future. これはテスト版です。 新しい機能は今後大幅に変更されるか廃止される可能性があります。

#### SASI hard disk SASI ハードディスク

Fixed an issue where the first external transfer request during the data transfer phase occurred too early, causing a hang. データ転送フェーズの最初の外部転送要求が早すぎてハングアップする問題を修正しました。

#### crtmodtest.x

The hyphen has been removed. ハイフンを撤去しました。

#### fullpat.x and fullpat.fnc fullpat.x と fullpat.fnc

Added fullpat.x and fullpat.fnc. These are a driver that adapts sprite-related IOCS calls to support full pattern memory, and an external function for X-BASIC that utilizes it. fullpat.xとfullpat.fncを追加しました。 スプライト関連の IOCS コールをフルパターンメモリに対応させるドライバと、それを活用する X-BASIC 用の外部関数です。

#### Address translation cache monitor アドレス変換キャッシュモニタ

Cash mode is also displayed. キャッシュモードも表示されます。

#### MC68060

The MOVES instruction replaces the instruction space (2 or 6) with the data space (1 or 5). MOVES 命令は命令空間 (2 または 6) をデータ空間 (1 または 5) に読み替えます。

When a table search fails, the FSLW TM becomes either the MMU data space (3) or the MMU instruction space (4). テーブルサーチに失敗したとき、FSLW の TM は MMU データ空間 (3) または MMU 命令空間 (4) になります。

The cache mode is reflected in the cache miss penalties for main memory, ROM, and high memory. Specifically, when a transparent translation hit occurs, the cache mode set in DTT0/DTT1/ITT0/ITT1 is applied; when address translation is enabled via the translation control register (TCR), the cache mode set in the page descriptor is applied; otherwise, the default cache mode set in the TCR is applied. メインメモリ、ROM およびハイメモリのキャッシュミスペナルティに、キャッシュモードが反映されます。 具体的には、透過変換がヒットしたときは DTT0/DTT1/ITT0/ITT1 に設定されたキャッシュモードが、変換制御レジスタ TCR でアドレス変換が有効なときはページデスクリプタに設定されたキャッシュモードが、さもなくば、TCR に設定されたデフォルトキャッシュモードが反映されます。

Fixed a bug where FMOVEM.L (Ar)+,<list> and FMOVEM.L <list>,(Ar)+ applied the increment for Ar to Dr instead of Ar. It appears this bug occurred when the transfer order for -(Ar) was corrected. (Thanks カタ) FMOVEM.L (Ar)+,<list> と FMOVEM.L <list>,(Ar)+ が Ar の増分を Ar でなく Dr に加えるバグを修正しました。-(Ar) の転送順序を修正したときにエンバグしたようです。(Thanks カタ)

#### Rounded corner adjustment 角丸調整

Added rounded corner adjustment. The rounded corner adjustment prevents the corners of the screen from being cut off when switching to full-screen mode, provided the monitor has rounded corners and its aspect ratio is similar to that of the X68000 screen. This setting must be configured manually. Use the rounded corner ratio spinner in the display menu to specify the radius of the rounded corners as a percentage of the shorter side's length, then switch to full-screen mode. This setting is saved in the parameter roundedcornerratio. (Thanks カリーあげ正太) 角丸調整を加えました。 角丸調整は、モニタの角が丸く、モニタと X68000 の画面の縦横比が近いとき、全画面表示にすると画面の角が欠ける問題を回避します。 この項目は手動で設定する必要があります。 画面メニューの角丸率スピナーで、短辺の長さに対する角丸の半径をパーセントで指定してから、全画面表示に切り替えてください。 この設定はパラメータ roundedcornerratioに保存されます。(Thanks カリーあげ正太)

The rounded corner shape is based on a Fermat cubic curve. 角丸の形状はフェルマー 3 次曲線を想定しています。

### 0.26.03.08

#### OpenJDK 25.0.2

As of this writing, the latest OpenJDK is 25.0.2. Older versions of JDK may not work. Please use the latest OpenJDK if possible. これを書いている時点で最新のOpenJDKは 25.0.2 です。 これより古いバージョンの JDK では動作しないかも知れません。 可能な限り最新の OpenJDK を使用してください。

#### RTC ALARM 1Hz/16Hz

Implemented RTC ALARM 1Hz/16Hz. (Thanks megazone-mc21) RTC ALARM 1Hz/16Hz を実装しました。(Thanks megazone-mc21)

#### DMAC

Fixed a bug where, when initiating a transfer in response to an external transfer request, the device attempted to transfer data not only on the falling edge of the REQ signal but also when the REQ signal was already low. 外部転送要求に従って転送を開始するとき、最初のデータを REQ の立ち下がりだけでなく既に REQ が下がっているときにも転送しようとするエンバグを修正しました。

#### MC68060

ADDA/CMPA/SUBA.wl <ea>,Aq execution time has been corrected. When <ea> is (Ar)+ or -(Ar) and Ar==Aq, one additional cycle is added. ADDA/CMPA/SUBA.wl <ea>,Aq の実行時間を修正しました。<ea> が (Ar)+ または -(Ar)、かつ、Ar==Aq のとき、1 サイクル追加します。

#### Cache miss penalty キャッシュミスペナルティ

In 060turbo mode, cache miss penalties are applied to main memory, ROM, and high memory for both data and instruction caches. As this brings the emulator closer to the speed of the actual hardware, you may notice that 060turbo mode feels slower than before. 060turbo モードのとき、メインメモリ、ROM、ハイメモリを対象として、データキャッシュと命令キャッシュのキャッシュミスペナルティの時間を設けます。 実機の動作速度に少し近づいたことで、これまでよりも 060turbo モードの動作が遅くなったと感じる場合があります。

Currently, the cache miss penalty time calculation does not reflect the default cache mode or the cache mode specified by the page descriptor. The entire target area is treated as copy-back mode for calculating the cache miss penalty time. This is scheduled for improvement in the future. 今のところ、キャッシュミスペナルティの時間の計算に、デフォルトキャッシュモードおよびページデスクリプタで指定されたキャッシュモードは反映されません。 対象の領域の全体をコピーバックモードとみなしてキャッシュミスペナルティの時間を計算します。 これは今後改良する予定です。

Turning wait cycles OFF also sets the cache miss penalty time to 0. ウェイトサイクルを OFF にすると、キャッシュミスペナルティの時間も 0 になります。

Since no physical cache exists, data is written in the same manner as in non-cacheable mode. キャッシュの実体が存在するわけではありませんので、データはノンキャッシャブルモードと同じように書き込まれます。

### 0.26.02.08

#### Mercury-Unit V4

Fixed an issue where the Mercury-Unit V4 would become unstable at 10MHz. 10MHz のとき Mercury-Unit V4 の動作が安定しない問題を修正しました。

The 768x512 dot 256-color mode of the Mercury-Unit V4 does not function on the first model. This is because only the first model has negative logic for the HSYNC and VSYNC signals on the expansion slot. Mercury-Unit V4 の 768x512 ドット 256 色モードは初代だけ動作しません。 これは初代だけ拡張スロットの HSYNC と VSYNC が負論理であるためです。

#### DMAC

Fixed the processing of external transfer requests. (Thanks スズ ロウ) 外部転送要求の処理を修正しました。(Thanks スズ ロウ)

Fixed the behavior of PCT. PCT の挙動を修正しました。

#### mu4sim.pl and mu4sim.c mu4sim.pl と mu4sim.c

Added mu4sim.pl and mu4sim.c. mu4sim.pl と mu4sim.cを追加しました。

mu4sim.pl and mu4sim.c are programs for obtaining the EXPCL and EXREQ timing information necessary for emulating the Mercury-Unit V4. mu4sim.pl converts ABEL source code into C language, while mu4sim.c acts as a simple circuit simulator to observe signals. This was included as an answer to the question:“How did the author, who doesn't own a Mercury-Unit V4, create its emulator?” mu4sim.pl と mu4sim.c は、Mercury-Unit V4 のエミュレーションに必要な EXPCL と EXREQ のタイミングの情報を得るためのプログラムです。mu4sim.pl が ABEL ソースコードを C 言語に変換し、mu4sim.c が簡易的な回路シミュレータとなって信号を観測します。 「Mercury-Unit V4 を持っていない作者がどうやってそのエミュレータを作ったのか」という疑問に対する回答として収録しました。

I have the ABEL source code for the ispLSI on the Mercury-Unit V4, but I couldn't directly decipher the list of circuits described there. So, I devised and implemented a method:“Create a simple circuit simulator and observe the signals it outputs.”Someone familiar with HDL might think,“Even for a simple one, that's a terrible circuit simulator.”However, since the goal of enabling PCM output and 768x512 dot 256-color mode was achieved, I hope you'll overlook its shortcomings. Mercury-Unit V4 に載っている ispLSI の ABEL ソースコードがあるのですが、私にはそこに書かれている回路の羅列を直接読み解くことができませんでした。 そこで、「簡易的な回路シミュレータを作り、それが出す信号を観測する」という方法を考え、実行しました。HDL に慣れた人が見たら「簡易的だとしても酷い回路シミュレータだ」と思われてしまうかも知れません。PCM 出力と 768x512 ドット 256 色モードが使えるようにするという目的は達成されたということで、大目に見ていただきたいと思います。

#### Full pattern memory フルパターンメモリ

Full pattern memory has been added. フルパターンメモリを追加しました。

Enabling the full pattern memory checkbox in the sprite screen menu of the modification menu activates full pattern memory. This setting is saved in the parameter sprfpm. 改造メニューのスプライト画面メニューのフルパターンメモリチェックボックスを ON にすると、フルパターンメモリが有効になります。 この設定はパラメータ sprfpmに保存されます。

The X68000 could handle 256 patterns for sprites and backgrounds, but it was highly anticipated that CYNTHIA could handle 512 patterns. In February 2026, Koucha Yokan confirmed this fact by modifying an actual X68030 unit and verifying its operation. X68000 のスプライトとバックグラウンドで使えるパターンは 256 個ですが、CYNTHIA は 512 個のパターンを扱えることが高い確度で予想されていました。2026 年 2 月、紅茶羊羹さんが実際に X68030 実機を改造して動作を確認したことで、CYNTHIA が 512 個のパターンを扱えるのは事実であると確認されました。

While the sprite scroll registers are located inside CYNTHIA, the pattern memory is outside CYNTHIA. CYNTHIA has two sets of chip select signals for accessing pattern memory: XPC0/PCS0 and XPC1/PCS1. Connecting the pattern memory to the latter set, which is normally unconnected, enables handling of 512 patterns. スプライトスクロールレジスタが CYNTHIA の内側にあるのに対して、パターンメモリは CYNTHIA の外側にあります。CYNTHIA がパターンメモリにアクセスするためのチップセレクト信号は XPC0/PCS0 と XPC1/PCS1 の 2 組あり、非接続になっている後者にパターンメモリを接続すると 512 個のパターンを扱えるようになります。

The chip select bit selects which pattern memory to use: either the one connected to XPC0/PCS0 or the one connected to XPC1/PCS1. When the full pattern memory is disabled, setting the chip select bit to 1 causes the sprite to display as a solid block, and whatever is written to the pattern memory from the MPU will be read as 0xffff. チップセレクトビットで、XPC0/PCS0 と XPC1/PCS1 のどちらに接続されているパターンメモリを使うか選択します。 フルパターンメモリが無効のときチップセレクトビットを 1 にすると、スプライトは豆腐になり、MPU からパターンメモリに何を書き込んでも 0xffff が読み出されます。

chip select bit チップセレクトビット
address アドレス | bit ビット | label ラベル | content 内容
--- | --- | --- | ---
$00EB0000+8*n+6 | bit2 | SPCS | chip select for pattern used by sprite スプライトが使うパターンのチップセレクト
$00EB0808 | bit10 | MPUCS | chip select for pattern and text visible to MPU MPU から見えるパターンとテキストのチップセレクト
bit5 | B1CS | chip select for text used by BG1 BG1 が使うテキストのチップセレクト
bit2 | B0CS | chip select for text used by BG0 BG0 が使うテキストのチップセレクト

#### bgcstest.x

Added bgcstest.x. bgcstest.xを追加しました。

Tests the operation of the chip select in the text used by the BG. BG が使うテキストのチップセレクトの動作をテストします。

## 3. Past changes 過去の更新 ▶

## 4. Download ダウンロード

- XEiJ_0260328.zip …XEiJ (X68000 Emulator in Java) version 0.26.03.28 TEST

――Read more―――― 続きを読む ―― ――Hide more―――― 続きを隠す ――

- XEiJ_0260308.zip (41428KB)…XEiJ (X68000 Emulator in Java) version 0.26.03.08
- XEiJ_0260208.zip (41413KB)…XEiJ (X68000 Emulator in Java) version 0.26.02.08
- XEiJ_0260108.zip (40969KB)…XEiJ (X68000 Emulator in Java) version 0.26.01.08
- XEiJ_0251208.zip (40877KB)…XEiJ (X68000 Emulator in Java) version 0.25.12.08
- XEiJ_0251108.zip (40797KB)…XEiJ (X68000 Emulator in Java) version 0.25.11.08
- XEiJ_0251008.zip (40774KB)…XEiJ (X68000 Emulator in Java) version 0.25.10.08
- XEiJ_0250908.zip (40752KB)…XEiJ (X68000 Emulator in Java) version 0.25.09.08
- XEiJ_0250808.zip (40489KB)…XEiJ (X68000 Emulator in Java) version 0.25.08.08
- XEiJ_0250708.zip (38737KB)…XEiJ (X68000 Emulator in Java) version 0.25.07.08
- XEiJ_0250608.zip (38034KB)…XEiJ (X68000 Emulator in Java) version 0.25.06.08

## 5. Install インストール ▶

## 6. Explanation of menu メニューの説明 ▶

## 7. Configuration file 設定ファイル ▶

## 8. Parameters パラメータ ▶

## 9. Source code ソースコード ▶

## 10. Functions and features 機能と特徴 ▶

## 11. About IPLROM 1.6 IPLROM 1.6 について ▶

## 12. Explanation of misc/* misc/* の説明 ▶

## 13. Execution examples 実行サンプル ▶

## 14. Try to run the NetBSD/x68k NetBSD/x68k を動かしてみる ▶

## 15. Reference materials 参考資料 ▶

## 16. Link collection リンク集 ▶

## 17. License / Copyright / Disclaimer 使用許諾条件 / 著作権 / 免責事項 ▶

## 18. Acknowledgement 謝辞

I would like to thank: Right-holder companies and staffs of the SHARP PRODUCTS USERS FORUM who made efforts to distribute the basic software products of X68000 for free to the public. Keitarou Hiraki and Num Kadoma, they distribute beautiful fonts. Authors of free software that are used as execution examples of XEiJ. Everyone who reported problems and supported XEiJ by warm messages. X68000 の基本的なソフトウェアの無償公開に尽力された権利各社およびシャープ・プロダクツ・ユーザーズ・フォーラムの方々、美しいフォントを公開されている平木敬太郎さん、門真なむさん、実行サンプルとして使わせていただいたフリーソフトウェアの作者の方々、動作報告と応援のメッセージを寄せてくださった皆さん、ありがとうございます。

## 19. Contact information 連絡先

### Makoto Kamada

#### X

@kamadox

#### Discord

kamadox68k

#### E-mail メール

STUDIO KAMADA
Copyright © 1999-2026 Makoto Kamada