I've had a quick look at this, and I think I'm able to reproduce the PiTubeDirect Core Crash (although not every time).
Results so far:
- Acorn 6502 Cheese Wedge with genuine Tube ULA - game loads and works correctly
- Acorn 6502 Cheese Wedge with Hoglet's Retula Remake - game loads and works correctly
- Matchbox Co Pro Core 0 (3MHz 6502) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 0 (fast 6502) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 16 (lib6502) - game crashes at loading, Ctrl-Break recovers
- PiTubeDirect Core 17 (turbo) - game crashes at loading, Ctrl-Break recovers
- PiTubeDirect Core 18 (Dossytronics 65816) - game loads and works correctly
- PiTubeDirect Core 19 (ReCo 65816) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 24 (JIT 6502) - game crashes at initializing, Ctrl-Break sometimes hangs the JIT 6502 Core, so a power cycle (or switch of Co Pro) is needed to recover.
As to whats going on here, it's slightly complicated.
In the cases where the game crashes at initializing, this is happening only on Co Pros that have additional back selection logic allowing 8K blocks of memory to be pages. These registers live at FEE0-FEE7. The game is accidentally overwriting these as it overwrites the tube ROM area with it's own code. That causes a crash as the running code vanishes and is replaced by junk.
So there are two things that require further investigation:
1) Why is PiTubeDirect Core 16 crashing at loading (slightly later than initializing)? This Co Pro doesn't have any bank selection logic, so should in theory work. Especially as Co Pro 18 works fine. I should be able to debug this with the debugger.
2) Why is PiTubeDirect Core 24 crashing the JIT 6502 Core so a power cycle is needed. I'll probably need some assistance from Dominic on how to debug this.
Dave
Results so far:
- Acorn 6502 Cheese Wedge with genuine Tube ULA - game loads and works correctly
- Acorn 6502 Cheese Wedge with Hoglet's Retula Remake - game loads and works correctly
- Matchbox Co Pro Core 0 (3MHz 6502) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 0 (fast 6502) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 16 (lib6502) - game crashes at loading, Ctrl-Break recovers
- PiTubeDirect Core 17 (turbo) - game crashes at loading, Ctrl-Break recovers
- PiTubeDirect Core 18 (Dossytronics 65816) - game loads and works correctly
- PiTubeDirect Core 19 (ReCo 65816) - game crashes at initializing, Ctrl-Break recovers
- PiTubeDirect Core 24 (JIT 6502) - game crashes at initializing, Ctrl-Break sometimes hangs the JIT 6502 Core, so a power cycle (or switch of Co Pro) is needed to recover.
As to whats going on here, it's slightly complicated.
In the cases where the game crashes at initializing, this is happening only on Co Pros that have additional back selection logic allowing 8K blocks of memory to be pages. These registers live at FEE0-FEE7. The game is accidentally overwriting these as it overwrites the tube ROM area with it's own code. That causes a crash as the running code vanishes and is replaced by junk.
So there are two things that require further investigation:
1) Why is PiTubeDirect Core 16 crashing at loading (slightly later than initializing)? This Co Pro doesn't have any bank selection logic, so should in theory work. Especially as Co Pro 18 works fine. I should be able to debug this with the debugger.
2) Why is PiTubeDirect Core 24 crashing the JIT 6502 Core so a power cycle is needed. I'll probably need some assistance from Dominic on how to debug this.
Dave
Statistics: Posted by hoglet — Wed Dec 11, 2024 4:25 pm