A quick chat with Adisak Pochanayon

It does float! And doesn't get soggy in milk! :)

Moderator: a31chris

Post Reply
User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

A quick chat with Adisak Pochanayon

Post by a31chris » Wed Feb 26, 2014 3:11 am

Adisak I dont know if you seen this or not, but your work on the Jaguar version of NBA Jam TE gets some praise in this article.

http://gamesnews.yahoo.com/news-1392685
Boom Shakalaka! Jam Through the Years - Video Game News - Yahoo! Video Games
gamesnews.yahoo.com
Adisak Pochanayon wrote:'The most accurate version is arguably the Atari Jaguar edition, developed by The Conduit studio High Voltage Software and self-published by Atari. '

That was the project from HELL for me. 1 Programmer and 4 months to port 400,000 lines of assembler. I still have no idea to this day how I was porting 3,000 lines of production quality assembler for 4 months straight.


So you did do it in assembler like the arcade version?


I've compared them all to the arcade. Yours may well be the closest version. Saturn and PSX versions broke away from the arcade's style.

Yeah, that was a 100% asm port. We didn't have a working C compiler on the Jaguar at the time (there was an experimental GCC but it was buggy). Not to mention asm-to-C would have just taken more time. Plus I had to do all the arcade hardware emulation and a rewrite of the sound system and graphics layers.

The other versions also had very sucky slow load times... up to 30 seconds off CD. The Jaguar version was all compressed on ROM so loaded instantly and actually decompressed graphics on the fly as it drew them.
HVS a few years ago said you guys had a working C compiler for the Jags big chips that was implemented after WMCJ and eventually used C++?
Yeah, Scott Corley used C++ on Ruiner Pinball but all my work on Jag was 100% asm. I actually did a couple mostly ASM ports for PC as well - NBA Hangtime and NHL OpenIce. The main games were ported in asm but the hardware emulation layer was a combination of C and asm there.
Adisak Pochanayon @adisak may 17, 2014 wrote: fwiw the DSP code I wrote for NBA Jam was amazing. Ran audio in one context and supported full async code in the other. You could literally run two local programs (audio mixing + user code) locally on DSP.
Thanks for the chat Mr. Pochanayon. Good Luck with Mortal Kombat.
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
NeoGeoNinja
3DO ZERO USER
Posts: 343
Joined: Sun Apr 14, 2013 5:42 pm

Re: A quick chat with Adisak Pochanayon

Post by NeoGeoNinja » Sat May 17, 2014 9:45 am

This is excellent Chris! Thanks.

I'm a rather big fan of HVS's Conduit series. I thought they were a little overlooked in the big shadow of 'next gen' FPS's elsewhere.

The Conduit series took a more oldschool approach mixed with the best motion controls you'll, most probably, ever use in FPS.

The first game has a real Perfect Dark feel to it, which really works for me...

User avatar
MegaData
3DO ZERO USER
Posts: 85
Joined: Sat Mar 08, 2014 11:31 pm
Location: Undisclosed, Midwest, Republic of America
Contact:

Re: A quick chat with Adisak Pochanayon

Post by MegaData » Mon May 19, 2014 12:44 am

I could shed some light on the C code that High Voltage had used... although I'd like to know where that information about High Voltage came from in the first place. What did they say themselves?
With meddlesome charm,
MegaData

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Re: A quick chat with Adisak Pochanayon

Post by a31chris » Mon May 19, 2014 4:27 am

MegaData wrote:I could shed some light on the C code that High Voltage had used... although I'd like to know where that information about High Voltage came from in the first place. What did they say themselves?
What they said themselves I quoted. They used C with the Jags graphics processor. They said its the same gcc c compiler that came with the Atari development kit.
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
MegaData
3DO ZERO USER
Posts: 85
Joined: Sat Mar 08, 2014 11:31 pm
Location: Undisclosed, Midwest, Republic of America
Contact:

Re: A quick chat with Adisak Pochanayon

Post by MegaData » Wed May 21, 2014 2:28 am

High Voltage appears to mention their own tool..."code was post processed with GCCGPUM (HVS tool)." Full text is now posted in the Programming section.
With meddlesome charm,
MegaData

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Adisak tidbits from around the net.

Post by a31chris » Wed Mar 20, 2019 4:35 am

Originally, I had to use Atari's music code (even though I had my own code). Atari's music code caused all sorts of bandwidth problems which involved major bandwidth hogging (two reads per cycle per channel regardless of the sample rate). In order to allow the DSP to access the bus during display, I had to drop in tons of "null" objects with the release flag set. Anyhow, the Atari music code caused major nightmarish headaches which three months of patching my code couldn't fix (yep, threw away a lot of time trying to make shit fly). Anyhow, I finally just wrote my own music code that worked and I got a 30% boost in my framerate immediately. The new music code would also allow the DSP to help perform tasks.

Unfortunately, I didn't have time to move some of the decompression threading to the DSP which had plenty of time left over with my code running. If I had been able to use my music code from the start, WMCJ could have very well been running at 5-10 FPS faster!!!!!!! It still runs at a respectable 12-15 FPS but 17-20 FPS would have been a definite possibility.

One of the reasons why NBAJ TE runs sooooooo fast and sooooo
smooooooooth is that I didn't have to deal with any code conflicts like this.

I got complete freedom over the programming design and it really shows in how good and how quickly the project turned out.

adisak @ high voltage software
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

More Adisak tidbits

Post by a31chris » Wed Mar 20, 2019 4:39 am

The game is looking really good right now. I have optimized and optimized the game everywhere and right now it runs at about 15 fps at a resolution of 320x220. However, this could be faster if I didn't need to unpack all the character animations on the fly but since there are 12-15 Megabytes of sprite frames, I need to keep them compressed and I unpack them immediately before they are displayed. This amounts to megabytes of compressed data being slung around which obviously requires some additional work ;)

However, the game looks very good and has a very smooth feel to it
with the AI camera tracking the characters and all their moves. The
entire zooming thing is amazingly non-annoying (I've played games with continuously moving cameras and most tend to make you a bit dizzy or simply detract from your ability to control the game). Finally, I have been spending a lot of time fine-tuning gameplay.
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Adisak through the years...

Post by a31chris » Wed Mar 20, 2019 4:45 am

I have a very simple algorithm to doom in texture mapping floors and walls in 65536 colors with light shading to enhance depth perspective and it runs at about 40-50 frames per second!!!

I have texture mapping routines on the jaguar capable of drawing floors with depth shading and texture mapped walls at any angle which is basically a Doom graphics engine. I do not have any of the player-player interaction, collision, mapping, etc. that Doom uses...
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Adisak Adisak Adisak

Post by a31chris » Wed Mar 20, 2019 4:49 am

id wrote their own sound code so they could run tasks in the DSP. The Atari sound code fairly well takes over the DSP. Plus the Atari sound codes is a major drain on memory bandwidth. The music/sound driver I wrote for WMCJ and will use in NBAJ-TE uses 4:1 ADPCM compression and is over 30 times more bandwidth efficient than Atari's sound code. (on average I do 1-memory access compared to Atari's code's 32 accesses to play back a sample at 1/2 the max sample rate which is about standard sample rates). I noticed about a 15% improvement in my frame rate when i dumped their sound code for mine and an additional 10-15% improvement because I didn't have to split objects to let the DSP grab the bus more often.
-Adisak
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Iguana 32X NBA Jam code conversion

Post by a31chris » Thu Nov 28, 2019 5:50 am

We are porting from the Iguana 32X version and making literally dozens of improvements with every step.

To be honest, WMCJ has more actual play depth than NBAJ. You have more control over the game and features like the AI in WMCJ are considerably stronger (in NBAJ-TE, the AI simply boosts computer stats and cheats when he computer gets behind). WMCJ has a much more complicated 3-D texture mapped game-field and overall is a better game IMHO. NBAJ does feature 60 fps play but only has parallax scrolling and no rendered 3-D.

Adisak pochanayon -- Jaguar Programmer for WMCJ and NBAJ-TE
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Re: A quick chat with Adisak Pochanayon

Post by a31chris » Wed Jul 01, 2020 10:54 pm

I think the "losing" a character in the crowd has more to do with
getting used to playing in the perspective than with choppy animations. This happened a lot during testing so I added an option to make it easier to get used to the game. You can select from the options screen an option to permanently turn on the arrows above the players. This makes it nearly impossible to lose track of your players. I think once you stop "losing" players and getting used to the game's perspective, you will enjoy it much more.

The frame rate is between 12 and 18 fps. It averages around 15. The overall game runs at about the same speed as JagDoom with the exception that WMCJ has more than twice the resolution (320x220 vs 160x180). The framerate for the backgrounds and cameras is the same as the framerate for the game. I find it hard to believe that you find the camera view and backgrounds smooth while the game is choppy???

There is a lot of features in the control of WMCJ that take getting
used to. You can pick up the basic features of the game immediately but getting good takes a little while. For example, timing your shots makes them more accurate, using your energy to boost speed but maintaining enough to pull off dunks, and switching control of players can be fairly complicated. Add to that the control changes in passing, blocking, pulling off plays, using the computer AI controlled teammate to pass to you, etc. and you have a lot to learn in two hours ;)

To be honest, WMCJ has more actual play depth than NBAJ. You have more control over the game and features like the AI in WMCJ are considerably stronger (in NBAJ-TE, the AI simply boosts computer stats and cheats when the computer gets behind). WMCJ has a much more complicated 3-D texture mapped game-field and overall is a better game IMHO. NBAJ does feature 60 fps play but only has parallax scrolling and no rendered 3-D. The biggest appeals of NBAJ are actual NBA teams and lots of hidden features...
plus the simplicity of having automatic dunks (rather than special moves for dunks like WMCJ). Either way, they are both good games. You might note that NBAJ will use the Team Tap which comes with WMCJ. As far as I'm concerned you should buy both ;)

Adisak Pochanayon -- Jaguar Programmer for WMCJ,- current project NBAJ-TE
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

User avatar
a31chris
Jaguar MOD
Posts: 894
Joined: Mon Apr 01, 2013 7:09 am

Adisak on JagDoom

Post by a31chris » Wed Jul 01, 2020 11:01 pm

A lot of Jag DOOM is in C. It is far from optimized. WMCJ actually
renders more than twice as many pixels per second than DOOM and I would have gotten WMCJ to be faster if I would have had time to move the decompression of sprites from the GPU to the DSP. The reason I say twice as many is that they are about the same frame rate while I have a resolution of 320x220 (higher res in PAL) and they use 160x180. ID is very good and they made an excellent Jaguar game but they ported it over from a heavy "C" base and didn't optimize much in assembly. The theoretical texture mapping pixel limit is around 4 MPixels/sec.

-Adisak
What came after the Jaguar was the PS1 which for all it's greatness, ushered in corporate development and with it the bleached, repetitive, bland titles which for the most part we're still playing today. - David Wightman

Post Reply