Major code change pushed

Technical discussion for those interested in Supermodel development and Model 3 reverse engineering. Prospective contributors welcome.
Forum rules
Keep it classy!

  • No ROM requests or links.
  • Do not ask to be a play tester.
  • Do not ask about release dates.
  • No drama!

Re: Major code change pushed

Postby Ian » Mon Mar 27, 2017 9:16 am

yeah I just tried it and it compiles
I still get this one

warning C4520: 'Util::Config::Node::const_iterator' : multiple default constructors specified

but a warning is non fatal i guess :p
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Major code change pushed

Postby Bart » Mon Mar 27, 2017 9:24 am

Yeah just leave that. I think the code is fine. It's complaining about two constructors with default parameters. I don't think it's an actual problem. One of the constructors is for a const shared pointer (std::shared_ptr<const T>) and the other is for a normal shared pointer (std::shared_ptr<T>) -- so the compiler should have no trouble selecting between them.

I'm biased, though. I generally trust gcc over Microsoft ;)
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Major code change pushed

Postby Bart » Mon Mar 27, 2017 9:44 am

Spindizzi wrote:Hi,
Whaou, big internal changes


More to come eventually. I'd like to modernize the code base. A lot of things need to be fixed and a better logging mechanism is needed to (using streams). Step by step. Getting this config system in, adding support for parent/child ROM sets (still needs to be done), and fixing up some outstanding issues with inputs not properly being hooked up are the last items on my to-do list before an official release. I would also like to see specular code in there as well. I'll probably spend a week or so doing minor cleanup before the release and preparing an updated README.txt.

After that, releases should be more frequent, using minor version numbers. I want to get back to a state where people don't feel compelled to use web sites like EmuCR.com. Further in the future, I'd like to look into doing an automated build for people interested in testing development snapshots but I'm not much of a software engineer in that sense so I might need advice from outside on how to best accomplish this.

Can you explain why you have taken out the datas about the roms in an external xml file? Normally these datas are engraved in the marble and must not be changed by the users ?


It's perhaps too little too late at this point but I used to get annoyed having to recompile in order to test new ROM sets (these days, we can expect few if any more new dumps) and ROM patches. I also thought the game XML could be used to enable/disable per-game config options at some point to work around emulation issues. Although now, with Harry's awesome contributions, we may not need that :)

Lastly, although I have no plans to do so yet, if Supermodel ever expands in scope to include other systems or cool features like exporting/importing models and textures, it's likely that some sort of XML-based system might be useful.

Will config files be converted to xml also in the future (instead of .ini) ?


I don't think so, although if additional input files are needed to drive features like the ones I hinted at above, XML might make sense. Personally, I'm not a huge fan of XML and rather like the INI format for config files. Internally, the new config system can represent both XML and INI. Before, we had an INI parser, hard-coded config structs, and hard-coded structs to define games. It was simple and quick but I was never really happy with it. A bunch of global hand-rolled objects for the config are not very future-proof.

In the "oops" section, you've forgotten to remove the textures dump in Real3d destructor ;)
++


Thanks for pointing that out! I'll remove that when I get home :)
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Major code change pushed

Postby Ian » Mon Mar 27, 2017 10:43 am

I'll fix the warning, as it happens in every file it's included in because it's a template, and that's most :p
I think a new config system is great. I mean, maybe not needed as there are only what, 10 games lol? :) But it can't hurt.
The audio code is desperately in need at looking at. There's a few good audio patches floating about that I haven't even had a chance to look at.
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Major code change pushed

Postby Bart » Mon Mar 27, 2017 10:46 am

Ian wrote:I'll fix the warning, as it happens in every file it's included in because it's a template, and that's most :p
I think a new config system is great. I mean, maybe not needed as there are only what, 10 games lol? :) But it can't hurt.
The audio code is desperately in need at looking at. There's a few good audio patches floating about that I haven't even had a chance to look at.


Ah yeah, I need to revisit the Sega Rally 2 audio fix! I would definitely like to look at audio more after the next release.

EDIT: re: the warning: sure, no prob. You could also maybe use a #pragma to disable the warning if it proves troublesome to fix.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Major code change pushed

Postby Bart » Mon Mar 27, 2017 9:09 pm

I've added the remaining games to Games.xml but have not added all the various alternate ROM sets. Next, I'd like to get parent/child sets working. I need to take a peek at how the official MAME ROMs are structured these days.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Major code change pushed

Postby HarryTuttle » Tue Mar 28, 2017 4:00 am

Wow! :o
Two days no checking the board and suddenly all this changes! :)

I've to delay a bit my next new spotlight/fog contribution, since I'm still on r541...
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

Re: Major code change pushed

Postby Ian » Tue Mar 28, 2017 8:19 am

:)
Bart, finally got this thing compiled since I have a bit of time..
However

Supermodel: A Sega Model 3 Arcade Emulator (Version 0.3a-WIP)
Copyright 2011-2016 by Bart Trzynadlowski and Nik Henson

Error: Files for multiple games found in 'roms\scud.zip' (scud, scuda). Loading 'scud'.
Error: 'epr-19338a.bin' with CRC32 0xc9fac464 not found in 'roms\scud.zip'.
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Major code change pushed

Postby Ian » Tue Mar 28, 2017 1:10 pm

Bart,
you also need to optimise the loading code .. it takes a full 25 seconds to load a game rom in debug mode, which is verging on insane :o
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Major code change pushed

Postby HarryTuttle » Tue Mar 28, 2017 1:58 pm

Quick fix at beginning of <BlockFile.h>:
Code: Select all
#include <string>


Otherwise doesn't compile in MSYS2 with MINGW, moaning about "error: 'string' in namespace 'std' does not name a type"
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

PreviousNext

Return to The Dark Room

Who is online

Users browsing this forum: No registered users and 1 guest

cron