djipi / Virtual-Jaguar-Rx

Virtual Jaguar, an Atari Jaguar emulator, with integrated debugger
GNU General Public License v3.0
42 stars 5 forks source link

Object List at 0 #51

Closed 42Bastian closed 2 years ago

42Bastian commented 2 years ago

Object list at $0 does not work. List window shows it correct, but no display.

djipi commented 2 years ago

Does it occurs also on the original VJ? Could you also provide a sample executable or source code? it can be helpful to investigate.

42Bastian commented 2 years ago

2.1.2 shows the same behavior. mini.zip Fix for PAL. Uses rln/rmac.

42Bastian commented 2 years ago

Phoenix does not work either.

djipi commented 2 years ago

Thank you for this information, I do not promise a fix but will try to have a look at it.

djipi commented 2 years ago

Problem probably comes from the OPProcessList(...) function, located in the op.cpp file. Need to check with the dev. documentation and/or to check on the console if a 0 value is "legit".

42Bastian commented 2 years ago

As it works on real machines, it is kinda 'legit' ;-)

djipi commented 2 years ago

I've found the issue and fixed it at my side, the $0 value is used now but your example still displays a black screen. It is possible additional problem(s) prevent this display. Could you take a picture of your example running on console? Can be helpful to know how your example should look alike.

42Bastian commented 2 years ago

The mini.j64 is made for PAL. In NTSC it does not show anything. Attached version is for NTSC IMG_1129 mini_ntsc.zip

djipi commented 2 years ago

I think the remaining problem(s) with mini and mini_ntsc comes from somewhere else. The fix for the Object List at $0 allows now to display the fire256 demo (which plays very slow on the emulator). 2022-03-03 10_12_54-Virtual Jaguar v2 1 3 Rx - Now playing_ _fire256 j64_

I will open a specific issue when I will know more about the mini and mini_ntsc not working.

42Bastian commented 2 years ago

Ok. fire256 is also slow on real. Try gpufire256 or quickfire (both in new_bjl on githup). mini.S uses PIT1 (sorry, did forget): move.w $38(a4),(a0)+ Since reading PIT is not supported, it writes 0 to the screen buffer.