Jump to content
LaunchBox Community Forums

10.12-beta-1 Released


Jason Carr

Recommended Posts

2 minutes ago, TheNewClassics said:

Thanks for the info. What's weird is that I have old .hi files for some games from 2016 or so (I must have had this working at some point) that actually get uploaded when I play those games in LB. However the files don't appear to be updating, and I tried one that supposedly works with HiScore (4-D Warriors) and got above the top score in-game, but nothing was uploaded and no .hi file was created. I'm guessing it's something with my MAME setup but not sure what yet.

Probably would be good to enable debug logs and take a look to see if you get any errors.

Link to comment
Share on other sites

51 minutes ago, Jason Carr said:

Enable logs then in LaunchBox under Tools > Options > Debugging. Then give it a try and see what shows in the log file under LaunchBox\Logs. You can search for "MameHighScore" to find any errors.

Yes I have done that.

I see the message 

Quote

2020-03-19 08:35:33 PM MameHighScores.Parse Successful: Handed off for uploading to the LaunchBox Games Database.

Figured it out. Seems I must have changed my default variant of Dig Dug to the Atari version, hence the hi scores show there. (digdugat)

Now I swear I set the default back to just digdug, going to re-test and see if it will update now.

Edit: So I made sure digdug variant was the default for Dig Dug. Restarted LB. Played and beat hi score (90000+) Message in LB logs about handing off hi score.... no update.

PS: I get a lot of Retro Achievement messages in the log, is that normal?

Quote

2020-03-19 09:24:42 PM Music.Prepare Start
2020-03-19 09:24:42 PM Music.Kill Start
2020-03-19 09:24:42 PM Music.Kill Finished
2020-03-19 09:24:42 PM Music.NotifyTrackList Start
2020-03-19 09:24:42 PM Music.NotifyTrackList Invoke WPF
2020-03-19 09:24:42 PM FIRST CHANCE EXCEPTION: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'System.Collections.Generic.Dictionary`2[System.String,Unbroken.LaunchBox.Plugins.RetroAchievements.Achievement]' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'Achievements', line 1, position 473.
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureArrayContract(JsonReader reader, Type objectType, JsonContract contract)
2020-03-19 09:24:42 PM FIRST CHANCE EXCEPTION: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'System.Collections.Generic.Dictionary`2[System.String,Unbroken.LaunchBox.Plugins.RetroAchievements.Achievement]' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'Achievements', line 1, position 473.
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureArrayContract(JsonReader reader, Type objectType, JsonContract contract)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
2020-03-19 09:24:42 PM FIRST CHANCE EXCEPTION: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'System.Collections.Generic.Dictionary`2[System.String,Unbroken.LaunchBox.Plugins.RetroAchievements.Achievement]' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'Achievements', line 1, position 473.
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureArrayContract(JsonReader reader, Type objectType, JsonContract contract)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
 

 

Edited by Headrush69
  • Like 1
Link to comment
Share on other sites

I think the hi scores are adding together or something else is going on.  My original Donkey Kong score was around 22-23k, i beat it with a new score of 26K.  Now it shows a hi of 51k but not with the right initials.  I did fat finger the MAME reset key and wiped out the original hi score before the new one was created. Would be nice if there was an option for a user to clear a high score from LBDB.

Link to comment
Share on other sites

2 minutes ago, ed20910 said:

I think the hi scores are adding together or something else is going on.  My original Donkey Kong score was around 22-23k, i beat it with a new score of 26K.  Now it shows a hi of 51k but not with the right initials.  I did fat finger the MAME reset key and wiped out the original hi score before the new one was created. Would be nice if there was an option for a user to clear a high score from LBDB.

Now that I'm not following. If there's a bug there, it'd have to be with the hi2txt high scores reader, so let's hope there isn't, because I don't have access to that code. The only other thing I can figure is that maybe we should stop reading the nvram at all. Maybe that's cause for weird issues like this? Other than that, there's really nothing else I could do.

Link to comment
Share on other sites

12 minutes ago, ed20910 said:

I think the hi scores are adding together or something else is going on.  My original Donkey Kong score was around 22-23k, i beat it with a new score of 26K.  Now it shows a hi of 51k but not with the right initials.  I did fat finger the MAME reset key and wiped out the original hi score before the new one was created. Would be nice if there was an option for a user to clear a high score from LBDB.

My guess at this point is that we shouldn't be reading the nvram at all, based on this. It looks like every high score I've successfully set has resulted in a high scores file, so perhaps that's all we should be looking at?

Link to comment
Share on other sites

26 minutes ago, Jason Carr said:

Now that I'm not following. If there's a bug there, it'd have to be with the hi2txt high scores reader, so let's hope there isn't, because I don't have access to that code. The only other thing I can figure is that maybe we should stop reading the nvram at all. Maybe that's cause for weird issues like this? Other than that, there's really nothing else I could do.

 

18 minutes ago, Jason Carr said:

My guess at this point is that we shouldn't be reading the nvram at all, based on this. It looks like every high score I've successfully set has resulted in a high scores file, so perhaps that's all we should be looking at?

Welp, there are definitely some games that need to get the scores from the nvram, because they don't seem to create the .hi files. Both Rampage and Tapper seem to be like this. So disabling the nvram isn't going to be an option, I guess. Not sure what @ed20910 ran into with Donkey Kong though.

Link to comment
Share on other sites

I'm not sure what happened either, it's the only one that has done this. I would like to think my issue had something to do with the Mame reset. The next game had no mario. I had to exit the game and restart.  The current hi score on the machine is the 26k. If iwe can't read nvram, that is going to limit the number of games. Is there any way to "erase" a high score from lbdb on your end? If so, delete my Donkey Kong entry.

Link to comment
Share on other sites

1 minute ago, ed20910 said:

I'm not sure what happened either, it's the only one that has done this. I would like to think my issue had something to do with the Mame reset. The next game had no mario. I had to exit the game and restart.  The current hi score on the machine is the 26k. If iwe can't read nvram, that is going to limit the number of games. Is there any way to "erase" a high score from lbdb on your end? If so, delete my Donkey Kong entry.

Sure, I'll go ahead and do that. So it makes sense that MAME must have glitched out or something then? I guess we'll chalk it up to that for now. One thing is for sure, these high scores will have to be mostly casual, if for no other reason than the quality of the emulation on some of the titles is still lacking. Add in dip switches that let you change the number of lives, and it becomes obvious that it'll never be perfect. But we'll do our best. :)

Link to comment
Share on other sites

3 hours ago, Headrush69 said:

Edit: So I made sure digdug variant was the default for Dig Dug. Restarted LB. Played and beat hi score (90000+) Message in LB logs about handing off hi score.... no update.

Not sure what the issue was, but deleting the digdug nvram file fixed the issue.

First it reset digdug to the default hiscore, than on next restart of the game the LBDB hiscore was restored. Now it's updating properly. 

Link to comment
Share on other sites

Beta 5 is out now with a new popup in LaunchBox that lets you view the leaderboards in a larger format, and lets you easily pull up the leaderboards for alternate versions as well:

image.thumb.png.8d3b4a47b489662bcadb07a9f57b455a.pngIt's available either by clicking on the leaderboards in the game details sidebar, or via the right-click menu.

  • Like 4
  • Game On 1
Link to comment
Share on other sites

I saw an odd thing going on with how a game recorded a high score tonight.  I hadn't noticed any issues on few I have tried until "Burger Time". I have the latest LB  beta.  I didn't even register on the top 5 of high scores on the game screen and thus didn't enter in any initials. However, it took and recorded the highest score in the system for the #1 slot, and entered in the initials (KEN, 28,000). I think I was at like 7,350 points. I did have a btime.hi file dated October 2019.  No NVRAM file but do have a save state file.  I notice there are others for BT were all have the same 28,000 high score with KEN as initials, so looks like it is pulling the top score even if it wasn't achieved during that session of game play.  Out of the 10 I have tried, that was the first that seemed wonky. 

Link to comment
Share on other sites

Hey Jason, I have a log file here, along with part of the MAME log. Not sure if it helps much, but I'm still guessing it has something to do moreso with my MAME setup. 

MAME log relevant part:

Attempting to parse: default.cfg
Attempting to parse: 4dwarrio.cfg
Starting 4-D Warriors (315-5162)
hiscore: found hiscore.dat entry for 4dwarrio
hiscore: scores read FAIL

 

Edit: It's working now, I'm not entirely sure what setting I changed but I'll take it!

Debug 2020-03-21 11-58-30 AM.log

Edited by TheNewClassics
Link to comment
Share on other sites

Maybe another little feature for this that might be interesting later on: Maybe in that new pop-up window (from beta 5), being able to 'flip' through all games one has a registered highscore in. That way one could quickly browse through those games and see if some buster busted one's highscore, so one can go for revenge :)

Link to comment
Share on other sites

Hey Jason, love this idea! I use MAME through Retroarch so I think it's looking in the wrong place for the hiscores.dat file and mame.ini files (they are located in my retroarch/system/mame folder). Any chance you could make the location where it looks for hiscores configurable?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...