Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Headrush69 Posted March 20, 2020 Share Posted March 20, 2020 (edited) 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 March 20, 2020 by Headrush69 1 Quote Link to comment Share on other sites More sharing options...
ed20910 Posted March 20, 2020 Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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? Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
ed20910 Posted March 20, 2020 Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Krakerman Posted March 20, 2020 Share Posted March 20, 2020 Everyone must be d/l the beta .... slooooow d/l ? Thanks Jason! Quote Link to comment Share on other sites More sharing options...
Headrush69 Posted March 20, 2020 Share Posted March 20, 2020 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. Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 Beta 4 is out now to fix an issue with automatically configuring MAME to enable high scores when the MAME emulator path is relative. 1 Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted March 20, 2020 Author Share Posted March 20, 2020 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: It's available either by clicking on the leaderboards in the game details sidebar, or via the right-click menu. 4 1 Quote Link to comment Share on other sites More sharing options...
Dingo Posted March 21, 2020 Share Posted March 21, 2020 Hi Jason. It's possible to implement the download of images to the database from the https://www.steamgriddb.com/ source. So we can have an extra source from steam banners like images for our roms. Thanks. Quote Link to comment Share on other sites More sharing options...
Krakerman Posted March 21, 2020 Share Posted March 21, 2020 Any chance we can get this to work wit the Old Default theme Jason. I know I am one of those I just prefer the old theme look. ? 1 Quote Link to comment Share on other sites More sharing options...
sundogak Posted March 21, 2020 Share Posted March 21, 2020 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. Quote Link to comment Share on other sites More sharing options...
DOS76 Posted March 21, 2020 Share Posted March 21, 2020 @sundogak this is a known issue already. They are looking for a solution but there just may not be one unfortunately. 1 Quote Link to comment Share on other sites More sharing options...
TheNewClassics Posted March 21, 2020 Share Posted March 21, 2020 (edited) 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 March 21, 2020 by TheNewClassics Quote Link to comment Share on other sites More sharing options...
EgoBizarro Posted March 21, 2020 Share Posted March 21, 2020 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 Quote Link to comment Share on other sites More sharing options...
alondero Posted March 21, 2020 Share Posted March 21, 2020 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? Quote Link to comment Share on other sites More sharing options...
PanteraZombie Posted March 22, 2020 Share Posted March 22, 2020 This is awesome! Tested it with Galaga and works great! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.