fpgaarcade wrote:I thought the plan was to treat TB's repos as master
https://github.com/TobiFlex/TG68K.C
Yes, that was my understanding as well. And use this as a submodule in the cores depending on it.
Moderators: Mug UK, Zorro 2, Greenious, spiny, Moderator Team
fpgaarcade wrote:I thought the plan was to treat TB's repos as master
https://github.com/TobiFlex/TG68K.C
tobiflex wrote:apolkosnik wrote:slingshot wrote:I see you commented this:
https://github.com/TobiFlex/TG68K.C/blo ... l.vhd#L708
That fixed Pinball Illusions (not sure in what instruction).
Yeah, it looks like the fix is not in, as Pinball Illusions crashes when you load the table with the latest TG68K.C from git (tested on MiSTer)
OK, i put it in. Can you test then Pinball again, please?
tobiflex wrote:This fix destory the pack and unpack opcodes.
slingshot wrote:
Something throws a Trace exception without that "fix" (even in your latest version with TRAPcc).
tobiflex wrote:tobiflex wrote:apolkosnik wrote:Yeah, it looks like the fix is not in, as Pinball Illusions crashes when you load the table with the latest TG68K.C from git (tested on MiSTer)
OK, i put it in. Can you test then Pinball again, please?
This fix destory the pack and unpack opcodes.
I has inserted the TRAPcc opcode in the Core. Now works the NEXUS7 DEMO. Jippi!!!
tobiflex wrote:slingshot wrote:
Something throws a Trace exception without that "fix" (even in your latest version with TRAPcc).
In Pinball?
apolkosnik wrote:I just built MiSTer with your latest commit, and I ran 68020 tests with Tony's cputester, results attached. It looks like there's still some instructions that throw wrong exceptions, even CHK and RTE.
apolkosnik wrote:Sounds good, but Nexus7 demo was fully functional on the MiSTer core.
It looks like Pinball Illusions crashes in the middle of scrolling of the table that just loaded.
I just built MiSTer with your latest commit, and I ran 68020 tests with Tony's cputester, results attached. It looks like there's still some instructions that throw wrong exceptions, even CHK and RTE.
apolkosnik wrote:Sounds good, but Nexus7 demo was fully functional on the MiSTer core.
tobiflex wrote:CHK: "Exception ID: expected 0 but got 6" - is here the stackframe wrong?
tobiflex wrote:apolkosnik wrote:Sounds good, but Nexus7 demo was fully functional on the MiSTer core.
really?
tobiflex wrote:This fix destory the pack and unpack opcodes.
Code: Select all
ELSIF setstate = "10" AND write_back = '1' AND (opcode(15 downto 12)/="0100" or next_micro_state = idle) THEN
Code: Select all
@@ -319,10 +319,20 @@
Test: 00300000-00380000 Safe: ffffffff-ffffffff
CHK.W:
data/68000/CHK.W/0000.dat. 0...
-data/68000/CHK.W/0001.dat. 3478...
-data/68000/CHK.W/0002.dat. 5902...
-data/68000/CHK.W/0003.dat. 7964...
-All tests complete (total 7964).
+
+2: 4181 chk.w d1,d0
+SR: modified 0400 -> 0401 but expected no modifications
+Registers before:
+D0: 00000010 D1: 00000000 D2: ffffffff D3: ffffff00
+D4: ffff0000 D5: 80008080 D6: 7fff7fff D7: aaaaaaaa
+A0: 00000000 A1: 00000080 A2: 00008000 A3: 00007fff
+A4: fffffffe A5: ffffff00 A6: 0033ff00 A7: 0037fbc0
+SR: 0400 PC: 00340000 ISP: 0037ff80
+T1=0 T0=0 S=0 M=0 X=0 N=0 Z=0 V=0 C!0
+Registers after:
+SR: 0401 PC: 00340002 ISP: 0037ff80
+T1=0 T0=0 S=0 M=0 X=0 N=0 Z=0 V=0 C!1
+OK: Generated exception 6
slingshot wrote:tobiflex wrote:This fix destory the pack and unpack opcodes.
This one also enough for pinball:Code: Select all
ELSIF setstate = "10" AND write_back = '1' AND (opcode(15 downto 12)/="0100" or next_micro_state = idle) THEN
Will do some more test later to find out the exact instruction, at least we know it's from the "rts group"
apolkosnik wrote:This worked nicely, and Pinball Illusions worked well. No issues with pack/unpack, passes the cputest on 020.
tobiflex wrote:
This fix destory the pack and unpack opcodes.
Code: Select all
ELSIF setstate = "10" AND write_back = '1' AND (opcode(15 downto 8)/=x"42" or next_micro_state = idle) THEN
slingshot wrote:tobiflex wrote:
This fix destory the pack and unpack opcodes.
Narrowed down to the CLR instruction:Code: Select all
ELSIF setstate = "10" AND write_back = '1' AND (opcode(15 downto 8)/=x"42" or next_micro_state = idle) THEN
Maybe you have an idea what's wrong with that without the hack? Something is zeroed out what shouldn't I think.
tobiflex wrote:
It looks like a runtime error. The opcode after the CLR is important. Which instruction follows CLR?
tobiflex wrote:I have found the pinballbug.
Line 905: ELSIF state="01" AND exec_write_back='1' THEN
This falsifies the calculation of the addresses for the extended 68020 addressing types.
Line 905: ELSIF execOPC='1' AND exec_write_back='1' THEN
should be right.
Users browsing this forum: No registered users and 9 guests