Jump to content


Platinum Member
  • Content Count

  • Joined

  • Last visited

Everything posted by greatstone

  1. Ok, we are nearly 2 years after the last message Months are running at an incredible speed! I found some time to add 38 new games (again with contributions from T. Busse), 170 new clones, rework java and C# sources to be more closer to each other, slightly update the engine (check xml documentation for byte-trunc instruction), and greatly improved an internal function to try to automatically found the encoding algorithm of a specific hiscore file. So, yes, the project is still alive! Games: R2D Tank, Radar Scope, Guardian, Prehistoric Isle in 1930, Prehistoric Isle 2, Wild Western, The Three Stooges In Brides Is Brides, Black Widow, Gravitar, Space Duel, Eggs, Eliminator, Exed Exes, Loco-Motion, Pac & Pal, Start Trek, Tac/Scan, Warlords, Zektor, Snap Jack, Son Son, Demolition Derby, Espial, Kozmik Kroozr, Omega Race, Rampage, Satan's Hollow, Solar Fox, Spy Hunter, Time Pilot '84, Two Tigers, Wacko, Fire Truck, The Ninja Warriors, Gradius III, Lode Runner, Rainbow Island, Viewpoint, Youjyudn. all games from mame 0.1 to 0.28 are supported clones aligned to mame 0.212 hiscore.dat Everything is here: http://greatstone.free.fr/hi2txt/index.html
  2. "hi2txt" utility is still alive: here is v1.9 to close 2017 What's new? Some contributions from T. Busse (11 games): Thanks a lot!! 47 new games supported: Star Force, Rescue, Mysterious Stones - Dr. John's Adventure, Hunchback, Splat!, Space Zap, Sinistar, Reactor, Jr. Pac-Man, Bubbles, Blaster, Stargate, Diamond Run, Super Pac-Man, Invader's Revenge, Krull, Arabian, Seicross, Pepper II, Space Panic, Mouse Trap, Mad Planets, Venture, Fantasy, Vanguard, Lost Tomb, Jump Bug, Moon Quasar, Moon Base Zeta, Space Invaders Deluxe, Galaxy Wars, Gorf, Raiden DX, Forgotten Worlds, Galaga 3, The Empire Strikes Back, The Pit, Mirax, Mega Zone, Blasteroids, NATO Defense, Gaplus, Dawin 4078, Vs. Battle City, Halley's Comet, Horizon, ... all games from mame 0.1 to 0.24 are supported clones aligned to mame 0.192 hiscore.dat Everything is here: http://greatstone.fr...txt/hi2txt.html Feedbacks are welcome as well as game support requests or help Cheers and happy Christmas! GreatStone
  3. greatstone


  4. Writing into .hi or nvram files is totally another story than reading them, because some games also store a checksum along with the scores to prevent easy hack. It means that such checksum algorithm, specific for each game, has to be discovered by hand and also coded into the program. Very very time consuming activity! I can now easily understand how to extract data for a game hi file between 5mn to 1hour. But finding 1 checksum algorithm would takes days. That's why I am not writing scores right now. It can be done without much difficulty for games that are not using checksum, for sure, but it is half the answer. We still need to add some robust synchronization: * read scores from hi files * send new scores into a common database and a users circle (a web service as a google app? + google+ circle and accounts?) * get scores from a common database and a users circle * write scores back into hi files Another way is to forget to write back into .hi files and have a "common" hiscores CSV files (compiling high scores of the circle) available for a front-end to display it when browsing for games. And why not adding achievements into this web service too?
  5. @iNTiGOD Ah, and by the way: "Would like to update the hi score tutorial on the hyperspin website linking to your files if that's ok ?" Sure, updating an hyperspin tutorial will ease installation: that's a good idea!
  6. @Tapatalk: "Maybe is there a way to take random names from hyperspin and make our names show up in the high score" Random names of games? users? "show up in the high score"? Can you give more details about what you have in mind, with an example? @griffin518: thanks! @iNTiGOD: HiToText and hi2txt can read the last hiscore.dat without issue. The added value of such program is not in reading hiscore.dat (few lines of code). Have in mind that hiscore.dat is defining mame memory location where the highscore can be found when a game is loaded. So, "hi" files are "just" a bunch of mame memory bytes, and each game has a specific way to store hiscores in memory. Consequently, for each game you want a friendly "text" display, we have to analyze the content of the "hi" file, understand the meaning of each bit, and the way data are encrypted (endianness, base 10, byte-swap, ordering, pointers, string compression, etc.). After the analysis, we have to describe the decoding algorithm to produce the text representation. For the sake of maintenance and get help from other people, describing the decoding algorithm in XML is a must: it is "easy" for somebody able to read inside the matrix and understand XML to write its own XML description to support a new game hiscore or modify an existing one. What I propose with the new hi2txt utility is detailed here: http://greatstone.free.fr/hi2txt/doc/index.html 1. My proposal is a rework of the XML format of HiToTxt to describe "hi" file and how to play/output extracted data, so that it is flexible enough to describe ALL operations in XML, without hard-coding a game-specific algorithm inside the code of the tool => power users can help to add a new game to display its highscores, without changing the code itself and recompiling the tool. This XML format and related code to handle it is one of my main contribution (XML format description: http://greatstone.free.fr/hi2txt/doc/xml.html). 2. I also split the XML per game, for easier game addition. 3. As hiscore.dat have memory location modifications over the time, hi2txt automatically detects which hiscore.dat you are using and what is the best algorithm to apply (all described/modifiable in XML). 4. Also, it is supporting very high scores, using biginteger, to display for example the gigantic scores from last Cave shoot'em-up 5. Finally, you understand that a big contribution is to "add" game in hi2txt: it means write an XML description of its "hi" file. This is what I do in each release, and I think that now, hi2txt is supporting 700 more games than HiToTxt (games supported in details: http://greatstone.free.fr/hi2txt/stats.html). Hope you understand/like the achieved work And also why I am requesting help to support new games Regards, GreatStone
  7. v1.6 released! What's new? 31 new games supported Golden Axe, Ghouls'n Ghosts, Wyvern F0, Strider, Xevious, Xevious 3D/G, Vasara, Vasara 2, Shark Attack, Shinobi, Aero Fighters / Sonic Wings, Aero Fighters 2 / Sonic Wings 2, Aero Fighters 3 / Sonic Wings 3, Aero Fighters Special / Sonic Wings Limited, Turbo Force, Karate Blazers, Lethal Crash Race, F-1 Grand Prix, F-1 Grand Prix Part II, Pipe Dream, Tao Taido, Hatris, Power Spikes, Power Spikes II, Welltris, King of Fighters '94, King of Fighters '95, King of Fighters '96, King of Fighters '97, King of Fighters '98, King of Fighters '99 hi2txt general improvements imp: add -xml parameter allowing to display data in XML, for easier front-end integration imp: output table now accepts 'display' attribute fix: divide operation is now using a scale factor to avoid "non-terminating decimal expansion" error imp: operations can now use a unique field value to work on all values of a table column (ex: kof97) imp: nvram file is now supported as argument of hi2txt fix: display table columns and values even if all columns are using "format" or "src" attributes to build their values Reminder for HyperSpin -> installation guide: 1. unzip the downloaded archive, then copy hi2txt.exe and hi2txt.zip in the same folder than HyperSpin.exe 2. rename hi2txt.exe into HiToText.exe. That's all! 3. last RocketLauncher release seems to support hi2txt Everything is here: http://greatstone.fr...txt/hi2txt.html Feedback is welcome as well as game support request or help Cheers! GreatStone
  8. @potts Before trying hi2txt (or HiToText), be sure to use a mame release saving hi files, with its hiscore.dat companion. Then, follow my 2 steps instruction to see them on HyperSpin screen. @griffin, @gigapig Glad to have evidence that it is working for someone else than me Finally!
  9. @griffin In the v1.5, I just put hi2txt.exe and hi2txt.zip containing all xml files. The installation guide for HyperSpin is the following: 1. copy hi2txt.exe and hi2txt.zip in the same folder than HyperSpin.exe 2. rename hi2txt.exe into HiToText.exe So, you don't have to unzip all XML individually, just to copyt 2 files inside HyperSpin root and rename one !)
  10. v1.5 released! What's new? 23 new games supported Dragon Spirit, Armored Warrior, After Burner, After Burner II, Dungeons & Dragons: Shadow over Mystara Dungeons & Dragons: Tower of Doom, Operation Wolf, Operation Thunderbolt, Nebulas Ray, Final Star Force, Fire Battle, MX5000, Dyger, Change Air Blade, Chopper, Legion, Twin Hawk, Cyvern, A.B. Cop, Ace Attack, Dragon World II, Zero Team, Side Arms, Crypt Killer hi2txt general improvements decoding speed significantly improved xml files now bundled as one zip for easier installation now compatible with HyperSpin -> installation guide: 1.copy hi2txt.exe and hi2txt.zip in the same folder than HyperSpin.exe 2.rename hi2txt.exe into HiToText.exe As usual, everything (including full documentation), is here: http://greatstone.fr...txt/hi2txt.html Feedback is welcome as well as game support request Have a good day! GreatStone
  11. Finally! After one week of trials, writing multiple stub programs to dump every inputs and outputs, I manage to understand how to make it works with HyperSpin BUT: I still cannot understand why it is not working in the old way. The trick is the way the final data are displayed on the standard output stream: /* working with HyperSpin */ Console.WriteLine("RANK|SCORE|NAME|RANK DISPLAY"+Environment.NewLine+"1|31234|CAP|7"); /* NOT working with HyperSpin */ Console.WriteLine("RANK|SCORE|NAME|RANK DISPLAY"); Console.WriteLine("1|31234|CAP|7"); Can someone with enough experience in C#, HyperSpin or data reading can explain me why the second solution is not working? Why it is required by HyperSpin to output the data in one call to Console.WriteLine?? At the end of the day, the 2 methods are displaying exactly the same thing. Can it be related to the way HyperSpin is consuming the data from HiToText? By the way, you can expect a new release soon, compatible with HyperSpin and adding support for 20+ new games. Regards, G.
  12. I am still searching what can be the difference between the 2 utilities for HyperSpin. So, I tried to use "procmon" from SysInternals to follow Hyperspin activity: PID: 13712, Command line: "E:\Program Files (x86)\Hyperspin\HiToText.exe" -l PID: 21604, Command line: "E:\Program Files (x86)\Hyperspin\HiToText.exe" -r "T:\data\mame\v0.159\prog\hi/1941.hi" I slightly fixed "-l" parameter usage so that it can work without having an access to hiscore.dat, but it is still not enough. When I am calling myself the 2 utilities for the same, even for the new fix, the results are identical: so, I am still stuck and do not understand why one is working and the other not... I will now have a look at rocket launcher stuff
  13. After following the tutorial to configure "HiToText", I am able to get hiscores in HyperSpin. Now, by just renaming my own hi2txt.exe into HiToText.exe, I don't see anything. Does anybody knows how HyperSpin is calling HiToText to get the hiscores? Is there a way to activate more traces inside the HyperSpin log and see the command-line used to call HiToText? Any help will be appreciated Regards, G.
  14. So, anybody can provide me an exact file structure of the different parts? Where are the games? Where is mame? Where is hiscore.dat? Where is hitotext.exe? Is it something like this? mame/dats/hiscore.dat mame/hi/*.hi mame/hitotext.exe mame/mame64.exe By chance anybody knowns how the utility is called by hyperspin? used working directory, command-line? @gigapig: can you give me the message during the crash if any? Regards, G.
  15. Hello ninja, I have slighlty modified the hi2txt exectuable to be used directly inside mame directory. At least now, it is working fine with my own installation of mame, Before publishing a new version, I would like to know how the old "hitotext" utility is launched by HyperSpin: what is the command-line used and from which working directory?
  16. Myself? The 2 versions are strictly aligned in term of features. I will say that it is easier to use the C# version on a Windows machine. On any other operating system, the Java version is the one to be used. It all depends on your own taste I am interested to see if it can be supported inside Hyperspin to show the hiscores when browsing games.
  17. Hello all, I had improved the current high scores decoding engine of hi2txt utility, added some games and most important created also a native C# version, additionally to the Java one. What's new in 1.4 version? 18 new games supported + many clones! Play Girls 2, Palamedes, Fighting Hawk, Pirate Pete, Gun & Frontier, Liquid Kids, Metal Black, Super Space Invaders '91, Space Invaders '95: The Attack Of Lunar Loonies, Bubble Bobble II, Bubble Symphony, Grid Seeker: Project Storm Hammer, Ray Force, Kyukyoku Tiger II, Raiden DX, Raiden II, Tiger Road, Kamikaze games updated for hiscore.dat 2015-07-01: many!games updated for hiscore.dat 2015-01-31: many! hi2txt general improvements:a native C# version exists!output customization and filtering, through command-line parameters (see doc for more information)-score-grouping, -score-grouping-separator, -score-grouping-size-keep-field, -keep-table-value, -keep-first-score, -keep-first-table, -hide-field-max-lines, -max-columns As usual, everything (including full documentation), is here: http://greatstone.fr...txt/hi2txt.html Feedback is welcome as well as game support request And here is a simple installation guide for the C# version:DOT.NET Framework 4.5+ must be installed on your Windows unzip [email protected]@20150912.CSharp.7z go inside 'example' folder and double-click on read.bat => It will read a hiscore file and display extracted data. Have a look inside read.bat to see the command-line. Regards,GreatStone
  18. Hello ninja2bceen, This utility is a pure command-line tool. It means that you can use it by launching it yourself on a console and providing the right arguments to decode the hiscores file you want. It would be great if some frontends (Hello HyperSpin!) can support it directly so that this extraction of highscores can be done automatically when you go out of a game, and displayed somewhere in the frontend. It can also be used to send highscores to a global online leaderboard. Etc. Thanks for your interest, Regards, GreatStone.
  19. And now, it's time for a release of hi2txt ([email protected])! What's new? ____54 new games supported! ________Puzzle Uo Poko, Puzzle Mushihime-Tama!, Gyrodine, Planet Probe, Repulse/'99: The Last War, ________Dimahoo/Great Mahou Daisakusen, Air Gallet, Air Assault, Battle Chopper/Mr Heli, ________The Battle-Road, Cosmic Cop/Gallop Armed Police Unit, Demoneye-X, Dragon Breed, ________Gunforce, Gunforce II/Gep Storm, In The Hunt, Lethal Thunder/Thunder Blaster, Ninja Spirit, ________R-Type Leo, Tiger Heli, Wardner, Mars Matrix, Darius, Acrobat Mission, Saint Dragon, ________P-47 The Phantom Fighter, P-47 Aces, Wiz, Stinger, Darius II, G-Darius, Scion, Rug Rats, ________Hot Chase, Warp & Warp, Vulgus, Ultraman, Vulcan Venture, Hard Puncher, Tutankham, ________Tumble Pop, Toypop, Libble Rabble, Top Speed, Plump Pop, Insector X, Dr. Toppel's Adventure, ________Chuka Taisen, Bells & Whistles/Detana! Twin Bee, Super Contra, Thief, Gemini Wing, ________The New Zealand Story ____XML engine improved, for easier 'hi/nvram' files description: ________new format operation 'divide_round' ________new format operation 'round' ________new format operation 'capitalize' ________new format operation 'lowercase' ________new format operation 'loopindex' ________new @direction="both" for format operation 'trim' ________lot of new implicit format syntaxes ________minor improvements and fixes As usual, everything (including full documentation), is here: http://greatstone.free.fr/hi2txt/hi2txt.html Any comments? or request? GreatStone
  20. A new release of hi2txt ([email protected]), a little bit shmup oriented... What's new? new games supported: Guwange, DonPachi, Fever SOS / Dangun Feveron, Fire Shark, Hellfire, Same! Same! Same!, Rally Bike, Truxton / Tatsujin, Zero Wing, Battle K-Road, Gunbird, Gunbird 2, Samurai Aces / Sengoku Ace Tengai, Strikers 1945, Strikers 1945 III / Strikers 1999, Space Bomber Sol Divide, Tetris The Absolute The Grand Master 2/+, Gunbarich note: for guwange, it was a great pleasure to learn sokuon, youon, dakuten, handakuten, Hepburn romanization and the Iroha poem games updated for hiscore.dat 2014-08-22: Espgaluda, Nightmare in the dark, Major Havoc, Ketsui, Dazzler, V-Five XML engine improved, for easier 'hi/nvram' files description: japanese Hiragana defined as entities add pre-defined charset for number new operation 'uppercase' is supported for format new operation 'shift' is supported for format new attribute 'skip-first-bytes' and 'skip-last-bytes' for loop different groups of 'case' are supported inside the same format definition new attribute 'empty' and 'consume' for prefix and suffix operations minor fixes Grab it here: http://greatstone.free.fr/hi2txt/hi2txt.html Have a happy scoring time!! GreatStone
  21. A new release ([email protected]) today for hi2txt ;D => huge focus on toaplan games and a contribution from William L. (Pang). What's new? new games supported: V-Five, Grind Stormer, Vimana, Vanguard II, The Amazing Adventures of Mr. F. Lea Jin, Metal Soldier Isaac II, Vapor Trail, Kuhga, Spac Force, Meteoroids, Armed Police Batrider, Battle Bakraid, Battle Garegga, 1945 Part-2, Dogyuun, FixEight, Ghox, Knuckle Bash, Kingdom Grandprix, Shippu Mahou Daisakusen, Sorcer Striker, Mahou Daisakusen, Pipi & Bibis, Whoopee, Teki Paki, Truxton II, Demon's World Pang, Pomping World, Buster Bros. better [email protected] possibilities new 'txt' element for better XML readibility minor fixes Grab it here: http://greatstone.free.fr/hi2txt/index.html Regards, G.
  22. Hello bleasby, Yes, I keep this requirement in mind when writing this utility: have inputs and outputs as close as possible to hitotext. I have updated the online doc: http://greatstone.free.fr/hi2txt/doc/index.html#usage So, output is the same. RANK|SCORE|NAME|AREA|SPACESHIP|POWERUP|MAXHIT 1|468395520|PIE|ALL|RED|SHOT|359 2|5908065|OSD|1|BLUE|LASER|96 3|5637680|PIE|2-3|GREEN|SHOT|139 4|5544337|H.S|1|BLUE|LASER|96 5|3027206|PIE|5|RED|SHOT|170 And inputs are similar (-r, -ra) as there are additional parameters like -hiscoredat and -descr. -descr is optional if hi2txt is launched from its installation path, else it specifies where are stored the XML description files. -hiscoredat is mandatory, as it allows to select the right hi files decryption, in case different content has been defined by different hiscore.dat for the same game. Many thanks for your support and HyperPause possible integration
  23. Hi guys, I am currently spending some time on hitotext to decode high-score files as text. I am rewriting it from scratch (code+xml=>hi2txt), as a hobby and for my personal purpose (learning Java, XML modelization, manipulation at byte level), as it seems to be no more maintained. I am sharing it now, as perhaps it can raise some interest for other people. Feel free to test/use it and give some improvements idea: contributions to add more games are also are welcome! Huge thanks for Fyrecrypts and all contributors of original hitotext! Home of hi2txt: http://greatstone.free.fr/hi2txt/hi2txt.html
  • Create New...