More work on CPU

This commit is contained in:
Michael Smith
2025-08-21 19:53:41 +02:00
parent b72667947f
commit 6e3149d093
8 changed files with 226 additions and 102 deletions

View File

@@ -1,6 +1,7 @@
package gb
import (
"fmt"
"image"
"image/color"
)
@@ -17,13 +18,28 @@ type Console struct {
}
func NewConsole(path string) (*Console, error) {
cartridge, err := InsertCartridge(path)
cart, err := InsertCartridge(path)
if err != nil {
return &Console{}, err
}
fmt.Println("Cartridge loaded:")
fmt.Printf("\t Title : %s\n", cart.Title)
fmt.Printf("\t Type : %02X (%s)\n", cart.Header.CartridgeType, cart.Mapper)
fmt.Printf("\t ROM Size : %d KB\n", cart.ROMSize)
fmt.Printf("\t RAM Size : %02X (%s)\n", cart.Header.RAMSize, cart.RAMSize)
fmt.Printf("\t LIC Code : %02X (%s)\n", cart.Header.OldLicenseeCode, cart.Licensee)
fmt.Printf("\t ROM Vers : %02X\n", cart.Header.MaskROMVersionNumber)
fmt.Printf("\t Checksum : %02X ", cart.Checksum)
if cart.Checksum == cart.Header.Checksum {
fmt.Printf("(PASSED)\n")
} else {
fmt.Printf("(FAILED)\n")
}
buffer := image.NewRGBA(image.Rect(0, 0, ConsoleWidth, ConsoleHeight))
bus := NewBus(cartridge)
bus := NewBus(cart)
console := Console{Bus: bus, CPU: NewCPU(bus), front: buffer}
return &console, nil