Skip to content

ip-arch/NESLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 NESLab: 8ビットゲーム機で学ぶコンピュータの仕組み

Open In Colab

NESLab は、ファミリーコンピュータ(NES)のハードウェアを舞台に、C言語でのプログラミングを通じて「コンピュータの真の仕組み」を体感するための教育用実験環境(ラボ)です。

現代のブラックボックス化したPCやスマートフォンとは異なり、8ビットゲーム機は**「CPU、メモリ、画面表示(PPU)」の相互作用がすべて丸見え**です。本環境では、複雑な環境構築を一切行うことなく、Google Colab(ブラウザ)上でC言語のコードをコンパイルし、Webエミュレータ上で自作のプログラムをピコピコと動かすことができます。


🛠️ 学べること(カリキュラムの核)

一般的な「画面に文字を出すだけ」のC言語入門とは異なり、ハードウェア(低レイヤ)に直結した本質的なコンピュータサイエンスを学びます。

  • OSと高級言語の歴史: なぜ機械語やアセンブラではなく「C言語」が必要だったのか
  • プログラム内蔵方式: CPUがメモリ(ROM/RAM)から命令を読み込んで実行するメカニズム
  • ハードウェア制御: メモリの「特定の住所(レジスタ)」を直接書き換えて画面や音を操る感覚
  • アルゴリズムと状態遷移: 1/60秒のループの中で、入力・衝突判定・描画を処理する構造
  • コンパイルの本質: 人間が書いたC言語(.c)が、アセンブラ(.s)を経て機械語(.nes)へ翻訳されるプロセス

🚀 はじめかた(受講生・読者向け)

環境構築は不要です。Google Colab上でノートブックを開き、セルを実行するだけで開始できます。

1. ノートブックを開く

ページ上部にある [Open In Colab] ボタンをクリックし、ご自身のGoogleドライブにコピーを保存して実行してください。

2. 環境の自動構築(ノートブック内での処理)

ノートブック内の「環境構築セル」を実行すると、裏側で本リポジトリがクローンされ、cc65(ファミコン用C言語コンパイラ)が自動セットアップされます。

# Colab上でのクローン・更新用コード
!git clone [https://github.com/ip-arch/NESLab.git](https://github.com/ip-arch/NESLab.git) /content/NESLab
%cd /content/NESLab

About

Educational materials for Embedded systems with NES

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors