NES on DE2/ソフトウェアエミュレーションの解析
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[NES on DE2]]
*ソフトウェアエミュレーションの解析 [#aece7d0b]
主にエミュレータの解析の結果などを集める。
----
#contents
**InfoNES [#s8d9af12]
エミュレータはInfoNES093J_Srcを採用、対象プラットホームは基本的にwin32かlinux。ただし、どの関数がどのような動作をしているかが解れば良いので、GUI記述などの観点からするとlinuxの方が可読性が高い。
-''\doc''
--''GPL2''
--''GPL2J''
--''readme.html''
-''\linux''
--''InfoNES_System_Linux.cpp''
--''Makefile''
-''\mapper''
--''InfoNES_Mapper_000.cpp''
--...
--''InfoNES_Mapper_255.cpp''
-''\ppc2002''
-''\ppc2003''
-''\win32''
--''bitmap1.bmp''
--''InfoNES.dsp''
--''InfoNES.dsw''
--''InfoNES.ico''
--''InfoNES_Resource_Win.h''
--''InfoNES_Resource_Win.rc''
--''InfoNES_Sound_Win.cpp''
--''InfoNES_Sound_Win.h''~
--''InfoNES_System_Win.cpp''
--''resource.h''
-''InfoNES.cpp''~
このファイルでは主にAPUを除くその他のハードウェア(PPU、IO、RAM、ROM)の管理・操作・記述を行っている~
-''InfoNES.h''~
/* Initialize Mapper */~
extern void (*MapperInit)();~
/* Write to Mapper */~
extern void (*MapperWrite)( WORD wAddr, BYTE byData );~
/* Write to SRAM */~
extern void (*MapperSram)( WORD wAddr, BYTE byData );~
/* Write to APU */~
extern void (*MapperApu)( WORD wAddr, BYTE byData );~
/* Read from Apu */~
extern BYTE (*MapperReadApu)( WORD wAddr );~
/* Callback at VSync */~
extern void (*MapperVSync)();~
/* Callback at HSync */~
extern void (*MapperHSync)();~
/* Callback at PPU read/write */~
extern void (*MapperPPU)( WORD wAddr );~
/* Callback at Rendering Screen 1:BG, 0:Sprite */~
extern void (*MapperRenderScreen)( BYTE byMode );~
~
/* Initialize InfoNES */~
void InfoNES_Init();~
/* Completion treatment */~
void InfoNES_Fin();~
/* Load a cassette */~
int InfoNES_Load( const char *pszFileName );~
/* Reset InfoNES */~
int InfoNES_Reset();~
/* Initialize PPU */~
void InfoNES_SetupPPU();~
/* Set up a Mirroring of Name Table */~
void InfoNES_Mirroring( int nType );~
/* The main loop of InfoNES */ ~
void InfoNES_Main();~
/* The loop of emulation */~
void InfoNES_Cycle();~
/* A function in H-Sync */~
int InfoNES_HSync();~
/* Render a scanline */~
void InfoNES_DrawLine();~
/* Get a position of scanline hits sprite #0 */~
void InfoNES_GetSprHitY();~
/* Develop character data */~
void InfoNES_SetupChr();~
-''InfoNES_Mapper.cpp''
-''InfoNES_Mapper.h''
-''InfoNES_pAPU.cpp''~
このファイルでは主にAPUの管理・操作・記述を行っている
-''InfoNES_pAPU.h''~
typedef void (*ApuWritefunc)(WORD addr, BYTE value);~
extern ApuWritefunc pAPUSoundRegs[20];~
void ApuWriteControl(WORD addr, BYTE value);~
InfoNES_pAPUWriteControl(addr,value) -> ApuWriteControl(addr,value);~
void InfoNES_pAPUInit(void);~
void InfoNES_pAPUDone(void);~
void InfoNES_pAPUVsync(void);~
--InfoNES.cppの関数InfoNES_HSync()の718行目のcase SCAN_VBLANK_STARTから呼び出されている。
-''InfoNES_System.h''
-''InfoNES_Types.h''~
このファイルでは主にInfoNESで用いる型の定義を行っている~
typedef unsigned long DWORD;~
typedef unsigned short WORD;~
typedef unsigned char BYTE;~
-''K6502.cpp''
-''K6502.h''
-''K6502_rw.h''
終了行:
[[NES on DE2]]
*ソフトウェアエミュレーションの解析 [#aece7d0b]
主にエミュレータの解析の結果などを集める。
----
#contents
**InfoNES [#s8d9af12]
エミュレータはInfoNES093J_Srcを採用、対象プラットホームは基本的にwin32かlinux。ただし、どの関数がどのような動作をしているかが解れば良いので、GUI記述などの観点からするとlinuxの方が可読性が高い。
-''\doc''
--''GPL2''
--''GPL2J''
--''readme.html''
-''\linux''
--''InfoNES_System_Linux.cpp''
--''Makefile''
-''\mapper''
--''InfoNES_Mapper_000.cpp''
--...
--''InfoNES_Mapper_255.cpp''
-''\ppc2002''
-''\ppc2003''
-''\win32''
--''bitmap1.bmp''
--''InfoNES.dsp''
--''InfoNES.dsw''
--''InfoNES.ico''
--''InfoNES_Resource_Win.h''
--''InfoNES_Resource_Win.rc''
--''InfoNES_Sound_Win.cpp''
--''InfoNES_Sound_Win.h''~
--''InfoNES_System_Win.cpp''
--''resource.h''
-''InfoNES.cpp''~
このファイルでは主にAPUを除くその他のハードウェア(PPU、IO、RAM、ROM)の管理・操作・記述を行っている~
-''InfoNES.h''~
/* Initialize Mapper */~
extern void (*MapperInit)();~
/* Write to Mapper */~
extern void (*MapperWrite)( WORD wAddr, BYTE byData );~
/* Write to SRAM */~
extern void (*MapperSram)( WORD wAddr, BYTE byData );~
/* Write to APU */~
extern void (*MapperApu)( WORD wAddr, BYTE byData );~
/* Read from Apu */~
extern BYTE (*MapperReadApu)( WORD wAddr );~
/* Callback at VSync */~
extern void (*MapperVSync)();~
/* Callback at HSync */~
extern void (*MapperHSync)();~
/* Callback at PPU read/write */~
extern void (*MapperPPU)( WORD wAddr );~
/* Callback at Rendering Screen 1:BG, 0:Sprite */~
extern void (*MapperRenderScreen)( BYTE byMode );~
~
/* Initialize InfoNES */~
void InfoNES_Init();~
/* Completion treatment */~
void InfoNES_Fin();~
/* Load a cassette */~
int InfoNES_Load( const char *pszFileName );~
/* Reset InfoNES */~
int InfoNES_Reset();~
/* Initialize PPU */~
void InfoNES_SetupPPU();~
/* Set up a Mirroring of Name Table */~
void InfoNES_Mirroring( int nType );~
/* The main loop of InfoNES */ ~
void InfoNES_Main();~
/* The loop of emulation */~
void InfoNES_Cycle();~
/* A function in H-Sync */~
int InfoNES_HSync();~
/* Render a scanline */~
void InfoNES_DrawLine();~
/* Get a position of scanline hits sprite #0 */~
void InfoNES_GetSprHitY();~
/* Develop character data */~
void InfoNES_SetupChr();~
-''InfoNES_Mapper.cpp''
-''InfoNES_Mapper.h''
-''InfoNES_pAPU.cpp''~
このファイルでは主にAPUの管理・操作・記述を行っている
-''InfoNES_pAPU.h''~
typedef void (*ApuWritefunc)(WORD addr, BYTE value);~
extern ApuWritefunc pAPUSoundRegs[20];~
void ApuWriteControl(WORD addr, BYTE value);~
InfoNES_pAPUWriteControl(addr,value) -> ApuWriteControl(addr,value);~
void InfoNES_pAPUInit(void);~
void InfoNES_pAPUDone(void);~
void InfoNES_pAPUVsync(void);~
--InfoNES.cppの関数InfoNES_HSync()の718行目のcase SCAN_VBLANK_STARTから呼び出されている。
-''InfoNES_System.h''
-''InfoNES_Types.h''~
このファイルでは主にInfoNESで用いる型の定義を行っている~
typedef unsigned long DWORD;~
typedef unsigned short WORD;~
typedef unsigned char BYTE;~
-''K6502.cpp''
-''K6502.h''
-''K6502_rw.h''
ページ名: