PHP 클래스 GameBoy\Core

파일 보기 프로젝트 열기: gabrielrcouto/php-terminal-gameboy-emulator 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
$CPUTicks The number of clock cycles emulated.
$DAATable
$DIVTicks DIV Ticks Counter (Invisible lower 8-bit)
$FCarry bit 4 - Carry
$FHalfCarry bit 5 - Half Carry
$FSubtract bit 6 - Sub
$FZero bit 7 - Zero
$GBCMemory GBC main RAM Banks
$IME Are interrupts enabled?
$JoyPad Joypad State (two four-bit states actually)
$LCDTicks ScanLine Counter
$MBC1Mode MBC1 Type (4/32, 16/8)
$MBCRAMBanksEnabled MBC RAM Access Control.
$MBCRam Switchable RAM (Used by games for more RAM) for the main memory range 0xA000 - 0xC000.
$RAMBanks Used to map the RAM banks to maximum size the MBC used can do.
$ROM The full ROM file dumped to an array.
$ROMBank1offs Offset of the ROM bank switching.
$ROMBanks 1 Bank = 16 KBytes = 256 Kbits
$ROMImage The game's ROM.
$RTCDayOverFlow
$RTCDays
$RTCHALT
$RTCHours
$RTCMinutes
$RTCSeconds
$RTCisLatched
$SecondaryTICKTable
$TACClocker Timer Max Ticks
$TICKTable
$TIMAEnabled
$VRAM Extra VRAM bank for GBC.
$audioTicks Used to sample the audio system every x CPU instructions.
$bgEnabled
$cCamera
$cGBC GameBoy Color detection.
$cHuC1
$cHuC3
$cMBC1 Does the cartridge use MBC1?
$cMBC2 Does the cartridge use MBC2?
$cMBC3 Does the cartridge use MBC3?
$cMBC5 Does the cartridge use MBC5?
$cMMMO1
$cRUMBLE Does the cartridge use the RUMBLE addressing (modified MBC5)?
$cSRAM Does the cartridge use save RAM?
$cTAMA5
$cTIMER Added
$canvasBuffer
$cartridgeType Cartridge Type
$colorCount
$colors "Classic" GameBoy palette colors.
$currMBCRAMBank MBC Currently Indexed RAM Bank
$currMBCRAMBankPosition MBC Position Adder;
$currVRAMBank Current VRAM bank for GBC.
$currentROMBank The parsed current ROM bank selection.
$drawContext LCD Context
$drewBlank To prevent the repeating of drawing a blank screen.
$emulatorTicks Times for how many instructions to execute before ending the loop.
$ffxxDump
$frameBuffer
$frameCount Frame skip tracker
$fromSaveState A boolean to see if this was loaded in as a save state.
$gameCode Game code (Suffix for older games)
$gbColorizedPalette
$gbPalette
$gbcPalette
$gbcRamBank Currently Switched GameBoy Color ram bank
$gbcRamBankPosition GBC RAM offset from address start.
$gbcRamBankPositionECHO GBC RAM (ECHO mirroring) offset from address start.
$gbcRawPalette
$gfxBackgroundX
$gfxBackgroundY
$gfxSpriteDouble
$gfxSpriteShow
$gfxWindowDisplay
$gfxWindowY
$halt Has the CPU been suspended until the next interrupt?
$hdmaRunning HDMA Transfer Flag - GBC only
$height
$inBootstrap Whether we're in the GBC boot ROM.
$lastIteration The last time we iterated the main loop.
$latchedHDays
$latchedHours
$latchedLDays
$latchedMinutes
$latchedSeconds
$lcdController lcdControllerler object
$memory Main Core Memory
$multiplier GBC Speed Multiplier
$name Name of the game
$numRAMBanks How many RAM banks were actually allocated?
$palette Pointer to the current palette we're using (Used for palette switches during boot or so it can be done anytime)
$pixelCount
$programCounter Program Counter
$registerA Accumulator (default is GB mode)
$registerB Register B
$registerC Register C
$registerD Register D
$registerE Register E
$registersHL Registers H and L
$rgbCount
$savedStateFileName When loaded in as a save state, this will not be empty.
$skipPCIncrement Did we trip the DMG Halt bug?
$spritePriorityEnabled
$stackPointer Stack Pointer
$stopEmulator Has the emulation been paused or a frame has ended?
$tileCount GB: 384, GBC: 384 * 2
$tileCountInvalidator
$tileData tile data arrays
$tileReadState true if there are any images to be invalidated
$timerTicks Timer Ticks Count
$transparentCutoff min "attrib" value where transparency can occur (Default is 4 (GB mode))
$untilEnable Are the interrupts on queue to be enabled?
$weaveLookup
$width
$windowSourceLine

공개 메소드들

메소드 설명
MBCRAMUtilized ( )
ROMLoad ( )
VRAMReadGFX ( $address, $gbcBank )
__construct ( $ROMImage, $drawContext )
arrayPad ( $length, $defaultValue )
checkPaletteType ( )
clockUpdate ( )
decodePalette ( $startIndex, $data )
disableBootROM ( )
displayShowOff ( )
drawBackgroundForLine ( $line, $windowLeft, $priority )
drawPartBgSprite ( $tileIndex, $x, $y, $sourceLine, $attribs )
drawPartCopy ( $tileIndex, $x, $y, $sourceLine, $attribs )
drawPartFgSprite ( $tileIndex, $x, $y, $sourceLine, $attribs )
drawSpritesForLine ( $line )
drawToCanvas ( )
executeIteration ( )
fromTypedArray ( $baseArray )
getTypedArray ( $length, $defaultValue, $numberType )
initBootstrap ( )
initLCD ( )
initMemory ( )
initSkipBootstrap ( )
invalidateAll ( $pal )
joyPadEvent ( $key, $down )
memoryRead ( $address ) Memory Reading:
memoryWrite ( $address, $data ) Memory Writing:
nswtuw ( $uword )
performHdma ( )
returnFromState ( $returnedFrom )
run ( )
runInterrupt ( )
saveState ( )
setCurrentMBC1ROMBank ( )
setCurrentMBC2AND3ROMBank ( )
setCurrentMBC5ROMBank ( )
setGBCPalette ( $address_, $data )
setGBCPalettePre ( $address_, $data )
setupRAM ( )
start ( )
toTypedArray ( $baseArray, $bit32, $unsigned )
unsbtub ( $ubyte )
unswtuw ( $uword )
updateCore ( )
updateImage ( $tileIndex, $attribs )
usbtsb ( $ubyte ) Helper Functions

메소드 상세

MBCRAMUtilized() 공개 메소드

public MBCRAMUtilized ( )

ROMLoad() 공개 메소드

public ROMLoad ( )

VRAMReadGFX() 공개 메소드

public VRAMReadGFX ( $address, $gbcBank )

__construct() 공개 메소드

public __construct ( $ROMImage, $drawContext )

arrayPad() 공개 메소드

public arrayPad ( $length, $defaultValue )

checkPaletteType() 공개 메소드

public checkPaletteType ( )

clockUpdate() 공개 메소드

public clockUpdate ( )

decodePalette() 공개 메소드

public decodePalette ( $startIndex, $data )

disableBootROM() 공개 메소드

public disableBootROM ( )

displayShowOff() 공개 메소드

public displayShowOff ( )

drawBackgroundForLine() 공개 메소드

public drawBackgroundForLine ( $line, $windowLeft, $priority )

drawPartBgSprite() 공개 메소드

public drawPartBgSprite ( $tileIndex, $x, $y, $sourceLine, $attribs )

drawPartCopy() 공개 메소드

public drawPartCopy ( $tileIndex, $x, $y, $sourceLine, $attribs )

drawPartFgSprite() 공개 메소드

public drawPartFgSprite ( $tileIndex, $x, $y, $sourceLine, $attribs )

drawSpritesForLine() 공개 메소드

public drawSpritesForLine ( $line )

drawToCanvas() 공개 메소드

public drawToCanvas ( )

executeIteration() 공개 메소드

public executeIteration ( )

fromTypedArray() 공개 메소드

public fromTypedArray ( $baseArray )

getTypedArray() 공개 메소드

public getTypedArray ( $length, $defaultValue, $numberType )

initBootstrap() 공개 메소드

public initBootstrap ( )

initLCD() 공개 메소드

public initLCD ( )

initMemory() 공개 메소드

public initMemory ( )

initSkipBootstrap() 공개 메소드

public initSkipBootstrap ( )

invalidateAll() 공개 메소드

public invalidateAll ( $pal )

joyPadEvent() 공개 메소드

public joyPadEvent ( $key, $down )

memoryRead() 공개 메소드

Memory Reading:
public memoryRead ( $address )

memoryWrite() 공개 메소드

Memory Writing:
public memoryWrite ( $address, $data )

nswtuw() 공개 메소드

public nswtuw ( $uword )

performHdma() 공개 메소드

public performHdma ( )

returnFromState() 공개 메소드

public returnFromState ( $returnedFrom )

run() 공개 메소드

public run ( )

runInterrupt() 공개 메소드

public runInterrupt ( )

saveState() 공개 메소드

public saveState ( )

setCurrentMBC1ROMBank() 공개 메소드

setCurrentMBC2AND3ROMBank() 공개 메소드

setCurrentMBC5ROMBank() 공개 메소드

setGBCPalette() 공개 메소드

public setGBCPalette ( $address_, $data )

setGBCPalettePre() 공개 메소드

public setGBCPalettePre ( $address_, $data )

setupRAM() 공개 메소드

public setupRAM ( )

start() 공개 메소드

public start ( )

toTypedArray() 공개 메소드

public toTypedArray ( $baseArray, $bit32, $unsigned )

unsbtub() 공개 메소드

public unsbtub ( $ubyte )

unswtuw() 공개 메소드

public unswtuw ( $uword )

updateCore() 공개 메소드

public updateCore ( )

updateImage() 공개 메소드

public updateImage ( $tileIndex, $attribs )

usbtsb() 공개 메소드

Helper Functions
public usbtsb ( $ubyte )

프로퍼티 상세

$CPUTicks 공개적으로 프로퍼티

The number of clock cycles emulated.
public $CPUTicks

$DAATable 공개적으로 프로퍼티

public $DAATable

$DIVTicks 공개적으로 프로퍼티

DIV Ticks Counter (Invisible lower 8-bit)
public $DIVTicks

$FCarry 공개적으로 프로퍼티

bit 4 - Carry
public $FCarry

$FHalfCarry 공개적으로 프로퍼티

bit 5 - Half Carry
public $FHalfCarry

$FSubtract 공개적으로 프로퍼티

bit 6 - Sub
public $FSubtract

$FZero 공개적으로 프로퍼티

bit 7 - Zero
public $FZero

$GBCMemory 공개적으로 프로퍼티

GBC main RAM Banks
public $GBCMemory

$IME 공개적으로 프로퍼티

Are interrupts enabled?
public $IME

$JoyPad 공개적으로 프로퍼티

Joypad State (two four-bit states actually)
public $JoyPad

$LCDTicks 공개적으로 프로퍼티

ScanLine Counter
public $LCDTicks

$MBC1Mode 공개적으로 프로퍼티

MBC1 Type (4/32, 16/8)
public $MBC1Mode

$MBCRAMBanksEnabled 공개적으로 프로퍼티

MBC RAM Access Control.
public $MBCRAMBanksEnabled

$MBCRam 공개적으로 프로퍼티

Switchable RAM (Used by games for more RAM) for the main memory range 0xA000 - 0xC000.
public $MBCRam

$RAMBanks 공개적으로 프로퍼티

Used to map the RAM banks to maximum size the MBC used can do.
public $RAMBanks

$ROM 공개적으로 프로퍼티

The full ROM file dumped to an array.
public $ROM

$ROMBank1offs 공개적으로 프로퍼티

Offset of the ROM bank switching.
public $ROMBank1offs

$ROMBanks 공개적으로 프로퍼티

1 Bank = 16 KBytes = 256 Kbits
public $ROMBanks

$ROMImage 공개적으로 프로퍼티

The game's ROM.
public $ROMImage

$RTCDayOverFlow 공개적으로 프로퍼티

public $RTCDayOverFlow

$RTCDays 공개적으로 프로퍼티

public $RTCDays

$RTCHALT 공개적으로 프로퍼티

public $RTCHALT

$RTCHours 공개적으로 프로퍼티

public $RTCHours

$RTCMinutes 공개적으로 프로퍼티

public $RTCMinutes

$RTCSeconds 공개적으로 프로퍼티

public $RTCSeconds

$RTCisLatched 공개적으로 프로퍼티

public $RTCisLatched

$SecondaryTICKTable 공개적으로 프로퍼티

public $SecondaryTICKTable

$TACClocker 공개적으로 프로퍼티

Timer Max Ticks
public $TACClocker

$TICKTable 공개적으로 프로퍼티

public $TICKTable

$TIMAEnabled 공개적으로 프로퍼티

public $TIMAEnabled

$VRAM 공개적으로 프로퍼티

Extra VRAM bank for GBC.
public $VRAM

$audioTicks 공개적으로 프로퍼티

Used to sample the audio system every x CPU instructions.
public $audioTicks

$bgEnabled 공개적으로 프로퍼티

public $bgEnabled

$cCamera 공개적으로 프로퍼티

public $cCamera

$cGBC 공개적으로 프로퍼티

GameBoy Color detection.
public $cGBC

$cHuC1 공개적으로 프로퍼티

public $cHuC1

$cHuC3 공개적으로 프로퍼티

public $cHuC3

$cMBC1 공개적으로 프로퍼티

Does the cartridge use MBC1?
public $cMBC1

$cMBC2 공개적으로 프로퍼티

Does the cartridge use MBC2?
public $cMBC2

$cMBC3 공개적으로 프로퍼티

Does the cartridge use MBC3?
public $cMBC3

$cMBC5 공개적으로 프로퍼티

Does the cartridge use MBC5?
public $cMBC5

$cMMMO1 공개적으로 프로퍼티

public $cMMMO1

$cRUMBLE 공개적으로 프로퍼티

Does the cartridge use the RUMBLE addressing (modified MBC5)?
public $cRUMBLE

$cSRAM 공개적으로 프로퍼티

Does the cartridge use save RAM?
public $cSRAM

$cTAMA5 공개적으로 프로퍼티

public $cTAMA5

$cTIMER 공개적으로 프로퍼티

Added
public $cTIMER

$canvasBuffer 공개적으로 프로퍼티

public $canvasBuffer

$cartridgeType 공개적으로 프로퍼티

Cartridge Type
public $cartridgeType

$colorCount 공개적으로 프로퍼티

public $colorCount

$colors 공개적으로 프로퍼티

"Classic" GameBoy palette colors.
public $colors

$currMBCRAMBank 공개적으로 프로퍼티

MBC Currently Indexed RAM Bank
public $currMBCRAMBank

$currMBCRAMBankPosition 공개적으로 프로퍼티

MBC Position Adder;
public $currMBCRAMBankPosition

$currVRAMBank 공개적으로 프로퍼티

Current VRAM bank for GBC.
public $currVRAMBank

$currentROMBank 공개적으로 프로퍼티

The parsed current ROM bank selection.
public $currentROMBank

$drawContext 공개적으로 프로퍼티

LCD Context
public $drawContext

$drewBlank 공개적으로 프로퍼티

To prevent the repeating of drawing a blank screen.
public $drewBlank

$emulatorTicks 공개적으로 프로퍼티

Times for how many instructions to execute before ending the loop.
public $emulatorTicks

$ffxxDump 공개적으로 프로퍼티

public $ffxxDump

$frameBuffer 공개적으로 프로퍼티

public $frameBuffer

$frameCount 공개적으로 프로퍼티

Frame skip tracker
public $frameCount

$fromSaveState 공개적으로 프로퍼티

A boolean to see if this was loaded in as a save state.
public $fromSaveState

$gameCode 공개적으로 프로퍼티

Game code (Suffix for older games)
public $gameCode

$gbColorizedPalette 공개적으로 프로퍼티

public $gbColorizedPalette

$gbPalette 공개적으로 프로퍼티

public $gbPalette

$gbcPalette 공개적으로 프로퍼티

public $gbcPalette

$gbcRamBank 공개적으로 프로퍼티

Currently Switched GameBoy Color ram bank
public $gbcRamBank

$gbcRamBankPosition 공개적으로 프로퍼티

GBC RAM offset from address start.
public $gbcRamBankPosition

$gbcRamBankPositionECHO 공개적으로 프로퍼티

GBC RAM (ECHO mirroring) offset from address start.
public $gbcRamBankPositionECHO

$gbcRawPalette 공개적으로 프로퍼티

public $gbcRawPalette

$gfxBackgroundX 공개적으로 프로퍼티

public $gfxBackgroundX

$gfxBackgroundY 공개적으로 프로퍼티

public $gfxBackgroundY

$gfxSpriteDouble 공개적으로 프로퍼티

public $gfxSpriteDouble

$gfxSpriteShow 공개적으로 프로퍼티

public $gfxSpriteShow

$gfxWindowDisplay 공개적으로 프로퍼티

public $gfxWindowDisplay

$gfxWindowY 공개적으로 프로퍼티

public $gfxWindowY

$halt 공개적으로 프로퍼티

Has the CPU been suspended until the next interrupt?
public $halt

$hdmaRunning 공개적으로 프로퍼티

HDMA Transfer Flag - GBC only
public $hdmaRunning

$height 공개적으로 프로퍼티

public $height

$inBootstrap 공개적으로 프로퍼티

Whether we're in the GBC boot ROM.
public $inBootstrap

$lastIteration 공개적으로 프로퍼티

The last time we iterated the main loop.
public $lastIteration

$latchedHDays 공개적으로 프로퍼티

public $latchedHDays

$latchedHours 공개적으로 프로퍼티

public $latchedHours

$latchedLDays 공개적으로 프로퍼티

public $latchedLDays

$latchedMinutes 공개적으로 프로퍼티

public $latchedMinutes

$latchedSeconds 공개적으로 프로퍼티

public $latchedSeconds

$lcdController 공개적으로 프로퍼티

lcdControllerler object
public $lcdController

$memory 공개적으로 프로퍼티

Main Core Memory
public $memory

$multiplier 공개적으로 프로퍼티

GBC Speed Multiplier
public $multiplier

$name 공개적으로 프로퍼티

Name of the game
public $name

$numRAMBanks 공개적으로 프로퍼티

How many RAM banks were actually allocated?
public $numRAMBanks

$palette 공개적으로 프로퍼티

Pointer to the current palette we're using (Used for palette switches during boot or so it can be done anytime)
public $palette

$pixelCount 공개적으로 프로퍼티

public $pixelCount

$programCounter 공개적으로 프로퍼티

Program Counter
public $programCounter

$registerA 공개적으로 프로퍼티

Accumulator (default is GB mode)
public $registerA

$registerB 공개적으로 프로퍼티

Register B
public $registerB

$registerC 공개적으로 프로퍼티

Register C
public $registerC

$registerD 공개적으로 프로퍼티

Register D
public $registerD

$registerE 공개적으로 프로퍼티

Register E
public $registerE

$registersHL 공개적으로 프로퍼티

Registers H and L
public $registersHL

$rgbCount 공개적으로 프로퍼티

public $rgbCount

$savedStateFileName 공개적으로 프로퍼티

When loaded in as a save state, this will not be empty.
public $savedStateFileName

$skipPCIncrement 공개적으로 프로퍼티

Did we trip the DMG Halt bug?
public $skipPCIncrement

$spritePriorityEnabled 공개적으로 프로퍼티

public $spritePriorityEnabled

$stackPointer 공개적으로 프로퍼티

Stack Pointer
public $stackPointer

$stopEmulator 공개적으로 프로퍼티

Has the emulation been paused or a frame has ended?
public $stopEmulator

$tileCount 공개적으로 프로퍼티

GB: 384, GBC: 384 * 2
public $tileCount

$tileCountInvalidator 공개적으로 프로퍼티

public $tileCountInvalidator

$tileData 공개적으로 프로퍼티

tile data arrays
public $tileData

$tileReadState 공개적으로 프로퍼티

true if there are any images to be invalidated
public $tileReadState

$timerTicks 공개적으로 프로퍼티

Timer Ticks Count
public $timerTicks

$transparentCutoff 공개적으로 프로퍼티

min "attrib" value where transparency can occur (Default is 4 (GB mode))
public $transparentCutoff

$untilEnable 공개적으로 프로퍼티

Are the interrupts on queue to be enabled?
public $untilEnable

$weaveLookup 공개적으로 프로퍼티

public $weaveLookup

$width 공개적으로 프로퍼티

public $width

$windowSourceLine 공개적으로 프로퍼티

public $windowSourceLine