2013-01-01から1年間の記事一覧

和製MESSでPC-6001 その2

以下を見てびっくり。初代P6であこがれの拡張BASICが使えるんです。しかも、拡張BASICのROMイメージは、mkIIのROMイメージを代用することで、ディスクのオートスタートが可能に! http://tulip-house.ddo.jp/digital/SD6031WIF/index.html とりあえず、BIOS…

和製MESSでPC-6001 その1

和製MESSはマイナー志向なので、PC-6001などはスルーされています。一方でPC-6001のハードウェア構成は、MSX1と非常に似ているので、改造したら動くんじゃないかと言う試みです。

和製MESSでMSX1 その7

オリジナリティありません。fMSXを参考にメモリマップを実装しました。色々なカートリッジが動くようになりました。 memory.cpp /* ASCII MSX1 Emulator 'yaMSX1' Skelton for retropc emulator Author : tanam Date : 2013.06.29- [ memory ] */ #include "…

和製MESSでMSX1 その6

ほとんどの実装はSC-3000そのままなのですが、PSGとJOYSTICKの部分は、ほとんどPHC-25そのままです(笑) msx1.cpp /* ASCII MSX1 Emulator 'yaMSX1' Skelton for retropc emulator Author : tanam Date : 2013.06.29- [ virtual machine ] */ #include "msx1.…

和製MESSでMSX1 その5

日本語106キーボードで動作確認。キーマトリクスはここら辺を参考に実装しました。 http://d4.princess.ne.jp/msx/datas/keyscan.html [F6]かな [F7]CAPS [F8]SELECT [F9]STOP keyboard.cpp /* ASCII MSX1 Emulator 'yaMSX1' Skelton for retropc emulator A…

和製MESSでMSX1 その4

SC-3000のPSGはSN76489ANなのですが、MSX1はAY-3-8912です。I/Oマップはここら辺を参考にしつつ、PHC-25のPSGを移植したら、あっさりサウンドが鳴りました。かつジョイスティックも使えるようになった! http://www31.atwiki.jp/tagoo/pages/16.html ところ…

和製MESSでMSX1 その3

MSX1に関してはQt 4.8に移植する前に、和製MESSへのパッチを作成しようと思います。 Slotの実装にてこずる。とりあえず以下のイメージで動作確認。 [Slot#0] 0000-7FFF BASIC ROM 8000-FFFF RAM [Slot#1] 4000-BFFF CARTRIDGE

和製MESSでMSX1 その2

fMSXを参考にキーボード入力を実装してみました。

和製MESSでMSX1 その1

和製MESSはマイナー志向なので、MSX1などはスルーされています。一方でSC-3000のハードウェア構成は、MSX1と非常に似ているので、改造したら動くんじゃないかと言う試みです。

Qt 4.8 和製MESS その6

最後にAndroidで動かす手順をまとめたいと思います。まずは、SC-3000.proをQt Creatorで開きます。「Necessitas Qt 4.8.2 for Android armv5」でプロジェクトを構成します。フォルダ構成は以下になります。 +SC-3000 SC-3000.pro +src ←和製MESSから上書き…

Qt 4.8 和製MESS その5

Windows環境のみですがdsound.libを使って、サウンド機能を実装してみました。 qt_sound.cpp /* Skelton for retropc emulator Qt Version : tanam Date : 2013.05.18 - */ #include "emu.h" #include "vm/vm.h" #include "fileio.h" #define DSOUND_BUFFER_…

Qt 4.8 和製MESS その4

Windows環境のみですがwinmm.libを使って、ジョイスティック機能を実装してみました。 qt_input.cpp /* Skelton for retropc emulator Qt Version : tanam Date : 2013.05.18 - */ #include "emu.h" #include "vm/vm.h" #include "fifo.h" #include "fileio.…

Qt 4.8 和製MESS その3

画面の拡大、キーボード入力、CMT機能などを実装してみました。 emu.h /* Skelton for retropc emulator Qt Version : tanam Date : 2013.05.18 - [ Qt4.8 emulation i/f ] */ #ifndef _EMU_H_ #define _EMU_H_ #include <QApplication> #include <QtGui> #include <QKeyEvent> #include <QPainter> #in</qpainter></qkeyevent></qtgui></qapplication>…

Qt 4.8 和製MESS その2

色々いじってみて、実装方針が決まりました。和製MESSはマルチスレッドでないのがいいですね。以下のエミュレータの実装に関するメモを読みながら、オリジナルのソースコードを極力触らない方法を考えてみました。 http://homepage3.nifty.com/takeda-toshiy…

Qt 4.8 和製MESS その1

Visual Studio with Qt 4.8.4の使い易さに感激して、和製MESSに手を出しはじめました。 http://homepage3.nifty.com/takeda-toshiya/common/index.html もともと、和製MESSもVisualStudioでコーディングされているので、WIN32依存部分のソースコードをQtに書…

PC-6001VX for IS01 その3

そろそろ仕上げに入ります。今日はここら辺を参考に、邪魔なサイドバーを消します。 http://blog.kcrt.net/2010/08/17 ※ Qt 5.1.0 Android for arm(GCC 4.7 Qt 5.1.0)でのビルド手順を反映しました。相変わらずそのままでは、コンテキストメニューは表示され…

PC-6001VX for IS01 その2

何かQt 4.8.2のみ以下のmsleep部分で、ビルドエラーになってしましました。 osdQt.cpp void OSD_Delay( DWORD tms ) { #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) //QThread::mleepはスレッドクラスからしか使えないので、仕方なく class MySleepThread : …

PC-6001VX for IS01 その1

PC6001VX 2.0a2がリリースされました。 http://eighttails.seesaa.net/article/305067428.html#more SDLが切り離されたことで軽くなったはずなので、今度はIS01(Android 1.6)向けにビルドしてみました。Androidに対応したQt5.0.2がリリースされていないた…

PC6001V for IS01 その8

安定稼働しているので公開しました。気付いているだけで以下のような制限事項があります。その6から読んで頂ければビルド出来るはず! GUI(WIN32)部分の実装は移植していません。 ROMと一緒に、設定ファイル、フォントファイルもあらかじめ用意する必要があ…

PC6001V for IS01 その7

osdSDL.cpp(1/2) #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <SDL.h> #include <SDL_syswm.h> #include <SDL_endian.h> #include "../log.h" #include "../osd.h" #include "../common.h" #include "../vsurface.h" #include "../p6el.h" #include <android/log.h> #include <jni.h> #inc…</jni.h></android/log.h></sdl_endian.h></sdl_syswm.h></sdl.h></sys/stat.h></sys/types.h></string.h>

PC6001V for IS01 その6

最後にPC6001VのGUI(WIN32)部分を取り除いて、IS01(Android1.6)で動かす方法をまとめてみます。 SDLのサイトから、android-project.zipをダウンロードして以下のフォルダ構成で解凍します。最新のSDL2.0ではAPIレベル4でビルド出来ないため、あえて古いもの…

PC6001V for IS01 その5

ここら辺を参考にOpenGLを最適化してみました。 https://sites.google.com/a/gclue.jp/android-docs-2009/openglno-kiso PC-6001で4:3表示。 PC-6601で4:3表示。つ、ついにIS01で表参道アドベンチャーが動きました! すぐに異常終了する問題があったのですが…

PC6001V for IS01 その4

2DのP6画面をCのOpenGLで書いて、VSurfaceをテクスチャにして貼ってみました。 OpenGLで苦戦しています。ここら辺を参考に無理やりコーディング、、、 http://labs.beatcraft.com/ja/index.php?Android%20%A4%C7%20OpenGL%20ES%20%20%A4%F2%BB%C8%CD%D1%A4%B…

PC6001V for IS01 その3

とりあえず画面が真っ暗からは脱出しました。キーボードのクリック音やエラー音は聞こえるので、P6が動きつつ画面はOpenGLの3Dキューブというシュールな状態です(笑) AndroidのSDLはVIDEO出力をJavaのOpenGLで実装しているので、うまく動いていないSDLを迂回…

PC6001V for IS01 その2

相変わらず実行すると画面が真っ暗です。キーボードのクリック音やエラー音は聞こえるので、画面出力以外は動いている様子。また作業の中で、Qtとの依存関係を完全になくしたので、実行速度は向上しています。 プロジェクトはandroid-project.zipにのっとり…

PC6001V for IS01 その1

ところでQtの実行速度が、SDLより遅い気がします。今度は本家PC6001VをベースにGUIの部分を取り除いて、Androidに移植したいと思いました。 #ようするに、Qt CreatorでQtベースではなく、EclipseでSDLをベースにビルドし直します。 http://www.papicom.net/…

PC-6001VX for IS11T その4

動作確認のため、表参道アドベンチャーでもやってみる。 ついでに南青山アドベンチャーもやってみる。 必要最低限のキーの入力だけを実装して、設定ファイルは「/sdcard」配下に変更して手で書き換えます。 P6Widget.cpp #include "P6Widget.h" extern unsig…

PC-6001VX for IS11T その3

とりあえず画面表示と、[RETURN]キーの入力だけ実装してみました。SDLのイベントループは使わずに、QWidgetを継承してイベントループを処理しています。エミュレータ側のスレッドとは、グローバル変数でデータを渡しています。その2の実装で音も鳴っている…

PC-6001VX for IS11T その2

いきなり起動したものの、ROMフォルダを選択するとSDLの世界に戻りますので、AUDIO初期化あたりでSIGSEGVで落ちます。 W/Qt (22339): QCommonStyle::drawComplexControl: Control 1 not handled W/Qt (22339): QCommonStyle::drawComplexControl: Control 1 …

PC-6001VX for IS11T その1

これからはキュートですかね。Necessitas(Qt for Android)入門を見ながら、何かやってみたいと思いました。 http://vivi.dyndns.org/tech/Qt/Necessitas.html 僕にとってはじめてのマイコンであるパピコンが、Androidで動いたらいいなと思っていました。SD…