Boot-up data transferred to Real3D

Technical discussion for those interested in Supermodel development and Model 3 reverse engineering. Prospective contributors welcome.
Forum rules
Keep it classy!

  • No ROM requests or links.
  • Do not ask to be a play tester.
  • Do not ask about release dates.
  • No drama!

Re: Boot-up data transferred to Real3D

Postby Bart » Sat Sep 23, 2017 4:24 pm

JTAG should only take a couple more hours -- will find time tomorrow. Need to rediscover the magic instruction and data values that change the shading model because the old code was off by a bit or two when shifting data around (that or the new code is ;)). Frame timing? No idea. Haven't had any time. Really sorry about that. A release may need to happen without it initially. Too many games are broken by my code now. I could spend a day just tweaking the status but timing to see if a magic value works but if not, will need to grind through the VON2 initialization routine and maybe others like a Magic Truck (I'm sure you're right about why the game stops rendering in attract mode -- it's almost def a frame timing issue).
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Boot-up data transferred to Real3D

Postby Ian » Sat Sep 23, 2017 5:13 pm

Don't worry about the frame timing for a release :)
The jtag code would be nice to have. I can finally remove those shading game hacks from the renderer. They don't really work for virtua on anyway since it changes mid game.

I did wonder about the original values you dumped. With the second run it seemed like the same values again but shifted to the left once.
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Boot-up data transferred to Real3D

Postby Bart » Sun Sep 24, 2017 1:57 pm

Done! Have a look. The new frame timing code is in there but disabled unless you compile with NEW_FRAME_TIMING. It affects Model3.cpp and Real3D.cpp.

There are definitely still some rendering issues in VON2. There's one level with an orange sky background but I think there's supposed to be a more pronounced gradient. In fact, I'm sure of it (there are some screenshots further back in this thread I think). Not a huge deal. Otherwise, I think things look great.

I didn't test *all* the games to make sure they still boot but I'm pretty confident that the ASIC ID codes are being returned correctly. If you come across anything that breaks, let me know. Likewise if I somehow goofed up on removing the game-specific hacks.

As usual, my code is a big over-engineered. CJTAG is its own class, and it passes stuff to CReal3D (as well as gets the ASIC ID codes from there), which in turn calls the renderer to update the sun clamp setting. The reason for the indirection, though, is to keep the JTAG relatively cleanly separated from CReal3D. It may be that JTAG is a Real3D-specific thing but it may also be hooked up to the tile gen. It's accessible through the system register space in any case, so I think it belongs in its own logical unit, hence all the indirection.

I'm also sad to see one of the oldest pieces of code in Supermodel (the JTAG emulation in Real3D.cpp) get chopped out. That one was the one bit of code (besides the disassembler) that had made it all the way from the original Supermodel project ca. 2003. In fact, I think it's still used verbatim in MAME because who the hell wants to look at JTAG again? :)
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Boot-up data transferred to Real3D

Postby Ian » Sun Sep 24, 2017 2:54 pm

Looks like you've done some great work Bart :)
Only briefly looked at what you submitted with regards to frame timing

Code: Select all
float frameRate             = 60;                 // actually, 57.52 Hz

Wouldn't it make sense to use the actual correct value?

It'll still run at 60fps for us since we are basically limited by v-sync
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Boot-up data transferred to Real3D

Postby Bart » Mon Sep 25, 2017 5:28 am

Yeah, we could use that value. It'll just give the frame 4% more PowerPC cycles to work with, which shouldn't affect timing. Haven't looked at frame timing for weeks and need to get back on it soon!
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Boot-up data transferred to Real3D

Postby Ian » Mon Sep 25, 2017 8:06 am

It'll just give the frame 4% more PowerPC cycles to work with, which shouldn't affect timing.

famous last words :)
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Boot-up data transferred to Real3D

Postby Bart » Mon Sep 25, 2017 10:47 am

Haha! Good point!
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Boot-up data transferred to Real3D

Postby Bart » Mon Sep 25, 2017 6:19 pm

So what do we need to absolutely make happen for the next release? Frame timing will have to wait. Would be nice if the crashes could somehow be mitigated with error checking but I realize that may not be feasible. Did you want to wait for Harry to get back and finish up some of the lighting odds and ends you guys were working on? I wanted to fix up the Makefile scripts as per Harry's work but I think they need a total overhaul to be honest so I was going to keep them mostly as-is for now and consult with a friend of mine at work about how best to handle it.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Boot-up data transferred to Real3D

Postby Ian » Tue Sep 26, 2017 3:01 am

Harry rewrote the spot light code to fix a corner case I think. I need to find this code again and dig through it.
But honestly I'd just make a release :)
This is not version 1.0 not everything is going to be finished.
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Boot-up data transferred to Real3D

Postby Bart » Wed Sep 27, 2017 6:14 am

I'll start making preparations. Will take me at least a couple weeks, though. I want to update the documentation and web site, and tie up a few odd ends in the code (e.g., save state format has to be updated, which will render old save states incompatible but is necessary).

Re: spot light, I've noticed that the spot light seems to be incorrect in LA Machineguns on the Las Vegas and Yosemite stages. It appears as if it's on all the time but I don't think that's supposed to be the case? It doesn't happen in the old engine as far as I recall.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

PreviousNext

Return to The Dark Room

Who is online

Users browsing this forum: No registered users and 1 guest