Add system-specific boot symbols and CPU instruction tests

Introduced symbol files for various Game Boy systems (CGB, AGB, MGB, SGB) to define boot sequences and functionalities. Included CPU instruction behavior tests, with detailed coverage of standard operations and interrupt handling. Added documentation for test execution and internal framework operations.
This commit is contained in:
2025-05-02 17:33:07 +01:00
parent ae44d43175
commit 918c9020b5
74 changed files with 5037 additions and 7 deletions

176
boot/cgb.sym Normal file
View File

@@ -0,0 +1,176 @@
; File generated by rgblink
BOOT:0000 EntryPoint
BOOT:0008 ClearLogoGDMA
BOOT:000d ClearLogoGDMA.end
BOOT:000d ClearLogoTilesGDMA
BOOT:0012 OverrideColors
BOOT:0042 LogoTopHalf
BOOT:005a LogoBottomHalf
BOOT:0072 RTile
BOOT:007a RTile.end
BOOT:007a LogoTilemapChecksums
BOOT:007c LogoTilemapChecksums.end
BOOT:007c Setup
BOOT:0093 Setup.clearOAM
BOOT:009e Setup.processLogo
BOOT:00b2 Setup.copyRTile
BOOT:00d8 Setup.checkLogo
BOOT:00db Setup.logoFailure
BOOT:00e7 Setup.computeChecksum
BOOT:00ed Setup.checksumFailure
BOOT:00f6 Setup.done
BOOT:0104 HeaderLogo
BOOT:0134 HeaderTitle
BOOT:013f HeaderMenufacturer
BOOT:0143 HeaderCGBCompat
BOOT:0144 HeaderNewLicensee
BOOT:0146 HeaderSGBFlag
BOOT:0147 HeaderCartType
BOOT:0148 HeaderROMSize
BOOT:0149 HeaderRAMSize
BOOT:014a HeaderRegionCode
BOOT:014b HeaderOldLicensee
BOOT:014c HeaderROMVersion
BOOT:014d HeaderChecksum
BOOT:014e HeaderGlobalChecksum
BOOT:0200 ClearVRAM
BOOT:0203 ClearUntilMemBoundary
BOOT:0204 ClearUntilMemBoundary.loop
BOOT:020a Memcpy
BOOT:0211 WaitVBlank
BOOT:0217 WaitVBlank.wait
BOOT:021d PollJoypad
BOOT:024a SetOBJAndBGPals
BOOT:0252 SetOBJAndBGPals.writeOBJPalData
BOOT:025c SetOBJAndBGPals.writeBGPalData
BOOT:0262 CommitBGPalettes
BOOT:0275 SetupSound
BOOT:028b SetupSound.initWaveRAM
BOOT:0291 DoLogoAnimation
BOOT:02a5 DoLogoAnimation.writeNintendoLogoMap
BOOT:02b0 DoLogoAnimation.dontWriteNintendoLogo
BOOT:02d3 DoLogoAnimation.changePaletteRow
BOOT:02d5 DoLogoAnimation.changePaletteBlock
BOOT:02d7 DoLogoAnimation.changePaletteLoop
BOOT:02f1 DoLogoAnimation.dontWriteLogoAttrMap
BOOT:02ff DoLogoAnimation.playSFX
BOOT:0306 DoLogoAnimation.dontAnimateLogo
BOOT:0306 DoLogoAnimation.dontPlaySFX
BOOT:0317 DoLogoAnimation.stepAnimation
BOOT:031c PerformFadeout
BOOT:031e PerformFadeout.loop
BOOT:033e PerformFadeout.clearLogoArea
BOOT:0341 PerformFadeout.clearLogoTiles
BOOT:034a PerformFadeout.fadePalettes
BOOT:0352 PerformFadeout.fadeColor
BOOT:035a PerformFadeout.redCap
BOOT:036e PerformFadeout.greenCap
BOOT:0384 PerformFadeout.blueCap
BOOT:038f DecodeLogoHalf
BOOT:0391 DecodeLogoHalf.decodeTileQuarter
BOOT:039a DecodeLogoHalf.decodingLeftHalf
BOOT:03a8 DecodeLogoHalf.decodingRightHalf
BOOT:03bd DecodeLogoHalf.goToRightHalf
BOOT:03bf DecodeLogoHalf.decodingTopHalf
BOOT:03c6 DecompressFirstNibble
BOOT:03c7 DecompressSecondNibble
BOOT:03ca DecompressSecondNibble.decompressBit
BOOT:03da WriteLogoTilemap
BOOT:03e2 WriteLogoTilemap.writeRow
BOOT:03e4 WriteLogoTilemap.writeByte
BOOT:03ef WriteLogoTilemap.done
BOOT:03f0 SetupGameBoyLogo
BOOT:03ff SetupGameBoyLogo.copyLogoRow
BOOT:041e SetupGameBoyLogo.copyRTile
BOOT:042c SetupGameBoyLogo.writeAttrRow
BOOT:042e SetupGameBoyLogo.writeAttrByte
BOOT:0441 SetupGameBoyLogo.writeTilemapByte
BOOT:0449 SetupGameBoyLogo.notFirstRow
BOOT:0450 SetupGameBoyLogo.notSecondRow
BOOT:045c SetupGameBoyLogo.initBGPalsLoop
BOOT:0488 SetupGameBoyLogo.usingOldLicensee
BOOT:048c SetupGameBoyLogo.checkMadeByNintendo
BOOT:0495 SetupGameBoyLogo.checksumTitle
BOOT:04a3 SetupGameBoyLogo.seekTitleChecksum
BOOT:04af SetupGameBoyLogo.foundTitleChecksum
BOOT:04bb SetupGameBoyLogo.seekFourthLetter
BOOT:04ce SetupGameBoyLogo.useDefaultIndex
BOOT:04d0 SetupGameBoyLogo.gotIndex
BOOT:04e9 WriteShuffledPalTriplets
BOOT:04f5 WriteShuffledPalTriplets.get3Indexes
BOOT:04fb WriteShuffledPalTriplets.bit0Set
BOOT:0501 WriteShuffledPalTriplets.cancelBit0Set
BOOT:0507 WriteShuffledPalTriplets.bit1Set
BOOT:050f WriteShuffledPalTriplets.cancelBit1Set
BOOT:0518 WriteShuffledPalTriplets.bit2Reset
BOOT:0528 ApplyPaletteOverride
BOOT:0539 ApplyPaletteOverride.copyPalette
BOOT:0564 GetPalettes
BOOT:0566 GetPalettes.copyPalette
BOOT:057b AddPalTripletOffset
BOOT:0582 AddPalTripletOffset.loop
BOOT:0588 AddPalTripletOffset.done
BOOT:0589 PickDMGPalette
BOOT:0596 PickDMGPalette.seekButtonCombo
BOOT:05a0 PickDMGPalette.jumpToDone
BOOT:05a2 PickDMGPalette.buttonComboFound
BOOT:05cf PickDMGPalette.done
BOOT:05d0 SetupCompatibility
BOOT:05de SetupCompatibility.dmgMode
BOOT:05fe SetupCompatibility.tryWriteLogoTilemap
BOOT:0606 SetupCompatibility.done
BOOT:0607 GameBoyLogoTiles
BOOT:06c7 GameBoyLogoTiles.end
BOOT:06c7 TitleChecksums
BOOT:0708 TitleChecksums.ambiguous
BOOT:0716 TitleChecksums.end
BOOT:0716 TitleFourthLetters
BOOT:0724 TitleFourthLetters.row
BOOT:0733 TitleFourthLetters.end
BOOT:0733 PalTripletIDsAndFlags
BOOT:0791 PaletteOffsets
BOOT:07e8 Palettes
BOOT:08d8 BootAnimationColors
BOOT:08e4 BootAnimationColors.end
BOOT:08e4 JoypadCombos
BOOT:08f0 JoypadCombos.end
BOOT:08f0 JoypadCombosTripletIDsAndFlags
00:8000 vBlankTile
00:8010 vLogoTiles
00:8190 vRTile
00:9800 vTileMap
00:98c2 vGameBoyLogoMap
00:9904 vBigNintendoLogoMap
00:99a7 vNintendoLogoMap
01:8000 vTiles
01:8080 vGameBoyLogoTiles
01:8380 vNintendoLogoTiles
01:83e0 vSecondRTile
01:83f0 vNintendoLogoTilesEnd
01:9800 vAttrMap
01:98c2 vGameBoyLogoAttrs
01:9904 vBigNintendoLogoAttrs
01:99a7 vNintendoLogoAttrs
02:d000 wWorkRAM
02:d000 wTitleChecksum
02:d002 wPreventTerminationCounter
02:d003 wHeldButtons
02:d004 wPressedButtons
02:d005 wPaletteOverrideIndex
02:d006 wWhichPalTripletCopy
02:d007 wOldWhichPalTriplet
02:d008 wWhichPalTriplet
02:d009 wPalShufflingFlagsCopy
02:d00a wOldPalShufflingFlags
02:d00b wPalShufflingFlags
02:d300 wZeroBuffer
02:d800 wOBJPalBuffer
02:d840 wOBJPalBuffer.end
02:d840 wBGPalBuffer
02:d880 wBGPalBuffer.end
02:d900 wPalOfsBuffer
02:d95a wPalOfsBuffer.end
02:d960 wPalOfsBuffer.realEnd
02:da00 wPalBuffer
00:ff80 hLogoBuffer
00:fffe hStackBottom