Just curious, nobody got the Switch version ?

Support Forum: http://minotaurproject.co.uk/phpBB3/viewforum.php?f=22
Post Reply
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

Deckard wrote:Level 36 has a bug after you complete it that you cant move your cursor up past mid way during the bonus round after.

More annoyingly I have found that even though the game shows me as beating my bests for levels if it crashes it doesnt remember and pretty much every game today it has crashed :( I down want to invest an hour plus in Pure or Survival if at any point it will freeze but I am sure Giles will fix asap and its all good practice !

And this is up there with Dead Cells for me as a forever shooter :)
If the game crashes before a proper "game over sequence" the stuff is lost, this because "it cannot save continuosly stuff" there has to be "a point where it saves" and "a point where it's not saving" .. so while you play everything is "in memory" but NOT "on disk" until the "game over" ( or "abort" ) sequence happens.

Level 36 bound round ? .. what bonus round it is ? The one flying through the rings ? ... I'll have to check that ..
Giles the billy goat
"Baa"
User avatar
Deckard
Sheepie Whore
Sheepie Whore
Posts: 10746
Joined: Fri Jun 18, 2004 11:27 pm 0
Location: Falmouth, Cornwall, UK

Re: Just curious, nobody got the Switch / VCS version ?

Post by Deckard »

Just the normal between levels bonus not the special one you get for collecting triangles. Straight after you finish level 36 you cant move your "cursor" higher than half way up the screen - has happened every time I have finished the level. Level is called Major Havoc.
Now with a new Mac Mini Pro so dont judge me !
User avatar
_TinOmen_
Baaaa!
Baaaa!
Posts: 744
Joined: Wed Feb 12, 2003 10:52 pm 0
Location: Stockholm, Sweden
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by _TinOmen_ »

I noticed that "Find my score" never works here. I can see my score on the global leaderboard but when I press A-button to find my score it always displays an empty list. I don't have any weird unicode characters in my name or anything.
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

OK .. now I have to understand "WHAT THE FUCK is going on" ..

Apparently the reason is ..

Code: Select all


SDK Assertion Failure: '!(mutex->_ownerThread == current)' in LockMutex() at pid=134(T4K-Switch), tid=631(MainThread)
nn::os::LockMutex(): <translated from japanese > An attempt was made to recursively lock a mutex that cannot be recursively locked. 

While calling my :

Code: Select all


uint32_t AudioRendererThread::playSoundWithRate(int soundNumber, float with_rate, float vol);


Now HOW IN THE HECK this can even happen "it should not be possible", the thread that calls that thing is a totally separate one from the thread that does shit with that thing .. then "it should be totally impossible" that function that does a thing like Lock/set some parms/unlock/return could ever be called "twice in the middle" from the SAME thread ..

It's like "the same thing that should be 'locked' into a thing lock/update/unlock someway manages to do a thing like "lock/who knows what" "lock again" .. which should not be possible .. there's some SHIT going on !!

At least thank to that guy on twitter that found a 100% repeateable way to make it happen.

This is the culprit that does the bug ..

Code: Select all

void fShot::explode()
{
	particleInitialiser pi=piDefaults;
	pi.posBase=pos;
	pi.startScale.x=16*g_g->POINT_SIZE;
	pi.startScale.y=20*g_g->POINT_SIZE;
	pi.endScale.x=4*g_g->POINT_SIZE;
	pi.endScale.y=4*g_g->POINT_SIZE;

	g->audio.playSound(SND_EXPLO, 1);

That "playsound" that then calls another little thing when the "fShot" explodes.

This needs .. "deep investigation" ...


5 .. MINS LATER ...

MA DIO (*&$*(£"&$( £",, ,MA DIO (")£$("$(£*$()"£ ..,. MA D*$(£)"$*()"£$

BECAUSE I AM F*(DSDHJSDS * STUPID !! HOW ! HOW ! IT NEVER HAPPENED HERE IN MONTHS !!!

IT'S SO STUPID !!! It's ONE LINE CODE FIX !!!

.. ok so the logic goes .. NOTE it need that mutex "lock" because there's another thread that "pumps samples" into the "channels" and does the mixing/effects/etc. so when you read/update some params "it has to be exclusive" otherwise you'd mess up with memory and have all sort of shit going on.

The "logic" goes ..

0. If already too many instances of that sound are in play don't even try
1. Lock the mutex
2. check if there's a "channel" available
3. if not "they are all busy with sounds can't add more", return
4. found a "channel", fill it with params
5. unlock the mutex
6. return

... can you see the SUPER STUPID error ...

I had "incredible weird shit errors" in this port that sometime took me A WEEK to find out what they actually were .. and turns out it was all "super crappy shit" like "forgot to initialise a var" ( that in 99.99% of cases was '0' and all was going on except in 0.01% cases ) .. oh dear ..

So the fix ?

Goes simply as that :

3. if not "they are all busy with sounds can't add more", { UNLOCK THE MUTEX, return }

... fuck ...

[edit] - "added for a sheep" .. 再帰ロック不可のミューテックスを再帰ロックしようとしました。
Last edited by gilesgoat on Fri Mar 25, 2022 11:56 am 0, edited 1 time in total.
Giles the billy goat
"Baa"
User avatar
Deckard
Sheepie Whore
Sheepie Whore
Posts: 10746
Joined: Fri Jun 18, 2004 11:27 pm 0
Location: Falmouth, Cornwall, UK

Re: Just curious, nobody got the Switch / VCS version ?

Post by Deckard »

Hooray for geniuses !!!!!!!!! You know what I am going to ask you now oh godly one -
Spoiler: show
When will the fix go live on my Switch
:lol: :lol: :lol:
Now with a new Mac Mini Pro so dont judge me !
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

Deckard wrote:Hooray for geniuses !!!!!!!!! You know what I am going to ask you now oh godly one -
Spoiler: show
When will the fix go live on my Switch
:lol: :lol: :lol:
Honestly I'll wait "a few more days" to know if "anything else comes out" I could fix, then I need to speak with Atari/etc. I am not sure/think the patches need to pass "certification" too so it may take "another 4 .. 5 days" after I've done the patch before it gets officially out, I am not sure how long times are.

Say lot of thanks to that JVeg199X on twitter because he found a way to 100% replicate it, without it would have been a supermassive pain in the arse to figure out what was going on !

[edit] - this is a case, AS ALWAYS WITH ALL CONSOLES, where THE PAIN of forms/procedures/etc. to get the patch out is superior to the pain to fix the actual bug :lol: :lol: :lol:

[edit2] - "PARANOIA" just to be sure, I did search and check in ALL the project sources ALL the places where I do a lock/unlock mutex to see there's nothing else like that .. thankfully they are few and localised .. and no .. turns out THAT WAS THE ONLY PLACE WHERE I'VE DONE THAT CRAP !!

Oh well .. when you have Gigbytes of project and Megabytes of sources ... .. ( and you are the only person checking all this thing .. ) ..
Giles the billy goat
"Baa"
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

_TinOmen_ wrote:I noticed that "Find my score" never works here. I can see my score on the global leaderboard but when I press A-button to find my score it always displays an empty list. I don't have any weird unicode characters in my name or anything.
REALLY ?

.. I have to check this one too ...

( me vien de pianzer )

[edit] - BANG , BANG, BANG, BANG, BANG, BANG, BANG, BANG, ( head on the desk ) ..

Must be some "werid UI issue" that I am checking, if instead of using the "A" button ( as the menu says ) you use "dpad" left-right to select it as "filter" ( as I usually do ) you'll see it works.

So my take is that "pressing A" probably selects "a wrong filter" and that's why you don't see a thing.

Investigating ...
Giles the billy goat
"Baa"
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

.. "what the fuck I was thinking ?" ..

I am looking the piece of code that does the "Press A to find your score" and it's like .. "what the heck of logic is supposed to be here ? Does not make much sense ?" ..

Hum ...

[edit] - ok I am making sense but I am still not getting it .. checking ..
Giles the billy goat
"Baa"
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

UI ..

1. if button ....
2. send message to "network thread" telling to ..
3. switch into "loading scene"
4. wait until results from net thread of user abort ( or else )
5. swich into "scoreboard scene"
6. CHECK THE ERROR STATE if any
7. if NO error print score(s) ..

Network thread ..

1. if message received ..
2. ah it's CMD_FINDMYSCORE ..
3. SET STATE = FAILURE ( assume will fail )
4. do A TON AND HALF OF SHIT with 2 TONS of possible consequences ..
5. if all ok fill up structures with data ( score, names, etc. ) ..
6. send back message to UI with STATE ..

.. can you see what is missing ?

...

5. if all ok fill up structures with data ( score, names, etc. ) .. AND SET STATE = OK !

Fix .. 3 lines of code .. setting some vars to the correct returned value of "state" ...

Yes yes I'll have to rewamp that "Network Thread" yes ... yes I had to touch it "too many times" as first time I did fail Nintendo cert because I was doing "some things they did not like them like that" .. yes it's COMPLICATED ...

"Conceptually" what the "Network thread" does it relatively simple, it waits for "commands" and/or "events" coming from various sources and "does things" like "give me a score/post me a score" .. BUT IN PRACTICE does a fuckload of other shit with "many consequences in the middle" that may require to launch "system UI" with LOT more consequences.

Like "to get a score, it needs a user" .. do we have actually have a user ? No ? Launch the user selector, is the user enabled to go online ? NO ? Launche the other user thing ( meanwhile manage aborts/etc. other shit/etc. ), do we finally have a user ? Ok, we do need a 'token', another 'id', can we get it, no, yes, whatever .. is the network still workging ? No ? do we need to check the server ? NO ? Yes ? Is the user meanwhile bored wanted to abort ? Ok ? Is the net down ? Present the user the "network thing" maybe it wants to connect via wifi ? OK ? Are we finally online ? No, check the server ? Can we do the "post" ? Ok "prepare a request", send , did it work ? No ? Is it a displayable error ? Yes ? Open that error dialog , translate error code in a human readeable form , display it with that function, offer an option , is a 'session' still open ? no ? yes, can we close it ? no ? why ? are we calling the server too much ?

If you think "all this shit is or should automagically happen in the 'GetScore' " the answer is NO, IT DOES NOT WORK LIKE THAT, you HAVE TO HANDLE ALL THIS VIA YOUR OWN CODE !

And/or you have "something" that does it it means you have some ( complex ) library that someway does all the job for you, and becuase there's not a "one size fits all" for those things well "you have to write your own code" ..

Then you have Nintendo cert going with things like "while going online, pressing the button and doing a backflip landing on the left foot then waiting 3 seconds and ripping out the network cord while smashing the wifi with a hammer we got error code 301:5764 that you did NOT display correctly because you used a smaller font and a blue icon it should have been turquoise .. " ..

Then you get SO nuts replicating and testing "it does what they want" in all those "super weird cases" that "the most normal thing" escapes from your view ...

Anyway I'd say "this is fixed too" now ..
Giles the billy goat
"Baa"
User avatar
Foozwah
Baaaaaa!
Baaaaaa!
Posts: 3156
Joined: Fri May 31, 2002 2:17 am 0
Location: Melbourne, Australia

Re: Just curious, nobody got the Switch / VCS version ?

Post by Foozwah »

Just deleted my post detailing UI score table probs cos it appears Giles has solved it. :winner:
yyr
Posts: 4
Joined: Wed Mar 23, 2022 3:38 pm 0

Re: Just curious, nobody got the Switch / VCS version ?

Post by yyr »

I am so glad that you were able to get useful info and figure these out so quickly!

Looking forward to playing more =)
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

Firday 21:10 ... after various WTF WTF WTF WTF ??!!! and many PRINTF() ..

I fixed the story of "restart levels / progress not working".

GOOD NEWS : you are NOT going to loose anything that is recorded on "savedata".

LESS GOOD NEWS : "what is not saved is not saved that's why you can't recall it back" ..

Now what was going on took me many hours to figure it out .. in essence something updates with the new level/bonus/etc. you reached data the "internal mem copy" that later on gets saved "for real" .. And "at various points" that data is re-saved/re-loaded/from disk/mem/etc. ..

Now .. let's look at this thing again ..
.. BUT IN PRACTICE does a fuckload of other shit with "many consequences in the middle" ..
Too long to explain .. "it's because of that other shit with many consequences in the middle" .. that fundamentally was doing a thing with the 'savedata' BEFORE another was done with the result to cancel the parts that were just updated.

The fix ... ONE line of code ..

How I did not see it ? .. there could be many explanations but it's late I am tired :lol:
Giles the billy goat
"Baa"
User avatar
gilesgoat
Sheepie Whore
Sheepie Whore
Posts: 27258
Joined: Wed Sep 03, 2003 7:54 am 0
Location: Monfalcone, Italy
Contact:

Re: Just curious, nobody got the Switch / VCS version ?

Post by gilesgoat »

Deckard wrote:Just the normal between levels bonus not the special one you get for collecting triangles. Straight after you finish level 36 you cant move your "cursor" higher than half way up the screen - has happened every time I have finished the level. Level is called Major Havoc.
This one I have to see it .. I HOPE it means I can use my "cheat mode" and go directly to level 36 and then try it .. becuase if I need to play 36 levels in a row to see it that .. would take some time ...
Giles the billy goat
"Baa"
User avatar
Deckard
Sheepie Whore
Sheepie Whore
Posts: 10746
Joined: Fri Jun 18, 2004 11:27 pm 0
Location: Falmouth, Cornwall, UK

Re: Just curious, nobody got the Switch / VCS version ?

Post by Deckard »

Give me to later tonight and I will get some video....from 1 min 15

Now with a new Mac Mini Pro so dont judge me !
User avatar
guythp
Baaaaaaa!
Baaaaaaa!
Posts: 5659
Joined: Thu Apr 25, 2002 11:49 pm 0
Location: Ipswich, Suffolk

Re: Just curious, nobody got the Switch / VCS version ?

Post by guythp »

I picked up a cheap switch lite just for this game. I initially thought on my first play "Oh, it's more Tempest than T2K" (no bad thing I should add), then I played it again, then again, then I got it. I'm still not very good at it but I love it... Then I found 'Y' changes the music. Nice touch.

I'll play it some more and should any anomalies crop up I'll let you know, but so far so good. Nice work lads :)
the hairy pies
Post Reply