Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
This is GBHawk in 2.3.3. Every input frame is now exactly the same length. Gambatte still uses a variable length frame so comparisons are still not one to one.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Yeah you need to adjust the movie if you are using gambatte because they are timed differently. I tested gambatte as well and with a few adjustments it did sync just fine, but unfortunately I don't have that file anymore. It shouldn't be more difficault then adding / subtracting a fe blank frames here and there though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I didn't try to improve level 1, so it looks like you are ahead by a bit already. You would have to play through a bit more of the game though to make sure you don't have RNG problems.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Wow finally done, another sorely needed update finally realized. Nice work sticking with this Arc. It's always a bit embarrassing to see how irrelevant a lot of the old TASes have become, at least this is one less. You're pretty committed to have done that luck manipulation by hand. I hope the next project you pick is something you can enjoy a little more! Yes vote from me.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
InfamousKnight wrote:
Maybe we should have a vote on desired core? Like poll results? I would really love to see PCem ported to bizhawk. With waterbox there shouldnt be any desync issues. If PPSSPP is easier to integrate, I would vote on that instead.
Well I'll be on MSX for at least a month or 2, so there's no rush here. And also it's not really a vote, people just work on things that interest them and seem accomplishable with the amount of time they have.
Sonia wrote:
Can you give us some links containing the resources/materials necessary for studying then? Because for someone starting from zero like me, I'd appreciate some directions at least. Just information that'd be relevant to fixing the core is enough.
Sure! If you are totally new to programming in general, the best place to start is C++ tutorials here: http://www.cplusplus.com/doc/tutorial/ In terms of program complexity, emulator cores are VERY simple. You don't really need to know anything past the Class tutorials there to fix bugs. C++ is a bit different from C#, but aside from syntax things are mostly the same for basic stuff. Once you've gotten comfortable with basic programs, clone BizHawk and start Console.WriteLine()'ing around the PCE core to get an idea of the flow of the system. Experimenting is the best way to learn. For PCE information, the best readily available resource is here: http://www.archaicpixels.com/ It's not the best resource I've ever seen, but it's pretty tractable. Don't get overwhelmed in the details, try to understand this part first: http://www.archaicpixels.com/Memory_Map Staring at the emulator as a whole won't really help you learn too much though. I recommend looking at a simple, concrete problem and seeing if you can track down what's going wrong. This is a good place to start: https://github.com/TASVideos/BizHawk/issues/1580 Splatterhouse is just an ordinary PCE title and doesn't use complicated CD stuff or supergrafx. I am pretty confident you should be able to figure this one out. Alternatively, you can look into this: https://github.com/TASVideos/BizHawk/issues/1231 Crashes are pretty simple to spot in a trace log, should be fairly easy to analyze. Good Luck, you can do it!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
EZGames69 wrote:
Can we also look into porting Mednafen’s PCE core into bizhawk to replace PCEHawk?
Not me, maybe feos or SuuperW once they are done now that waterbox can be built. Honestly though, starting from zero, you or anyone other interested person is only like 2 months of relatively simple study away from being 100% capable of fixing the existing core. It's really really not that hard. I would strongly encourage you or any other interested PCE folks to give it a try, you may find it rewarding to get a system working that you are very interested in.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
dekutony wrote:
I would like to see a new Genesis core that could hit cycle accuarcy, like a BlastEm port or something. That's probably going to be difficult to do though.
What utility would you get out of this? Is there something you see that is holding back gensplusgx? I honestly don't see what is holding back that core. Realistically I would probably need to make a basic genesis core anyway in order to test a MC68000 if I go that route, just so I can compare trace logs. Otherwise I would have to blind debug a new CPU core on a new system in an unfamiliar environment and that doesn't sound like a fun time for me. It wouldn't be a production core though. If someone out there wanted to make a 32X core I would commit to making a cycle accurate genesis core with a clean interface to build off of, but I would need a solid commitment.
Al82 wrote:
Personally, I think a working TAS-capable Amiga emulator would be amazing; the workflow in recording games for the system is so long-winded without re-recording.
Even if I did make an Amiga core it would only be a baseline implementation (with easy expandability baked in.) It's just a stepping stone for me, but maybe having a baseline model would inspire someone else to jump in and try expanding it. And I don't mind duplicating effort if necessary, >99% of what I've done in BizHawk was already done somewhere else at least once. For now I'll press ahead with MSX. I've almost got the Z80A core ported to C++.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Sonia wrote:
Here are the systems currently missing in Bizhawk that I'm looking forward to the most: ... MSX OpenMSX/BlueMSX could be ported over, but since you want to develop something in-house I guess that's out of question. I remember you once said all the components for a MSX core are already there, and it's just a matter of stitching them together. So maybe this one wouldn't be super hard? ... That's it. As a side note, I know this has already been said many times, but if you can reserve a bit of time to improve PCEHawk and bring it closer to Mednafen levels of accuracy, it'd be much appreciated. That core is in pretty bad shape.
xy2_ wrote:
+1 for X68000 and PC-98, these are systems that I would definitely use.
MSX is an excellent suggestion that I completely overlooked. That does sound like a good place to start, I think I'll go for it. Thanks! X68000 might be a good follow on, not sure yet. As for PCE, I just don't have any interest in it. It would be great if someone who was actually interested in the system would try to fix the bugs, it really needs someone who can focus some time on it.
feos wrote:
Developing emulation for these from scratch looks like a waste of time to me if instead existing emulators could be improved and reused.
I wasn't aware that PCem and UAE were so highly developed. The gap between existing and actually being ported is quite large though, but I guess I'll just leave them for someone else.
EZGames69 wrote:
Some in the discord server agree that they want PSP support.
PSP would itself be of the same difficulty as N64, I don't see it happening, at least not form me.
Post subject: New Core Architecture Roadmap
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
As I develop more cores for BizHawk, it's increasingly clear where the line is between what can be done in native C# and what can't. And as developing cores for 30+ year old systems has gotten kind of dull for me, I wanted to take some time to think about how I can contribute to more modern systems and where actual gaps are in Bizhawk that need filling. My long term goal is to build an N64 core in C++, but it's too complicated to just drop everything and start doing. I need to get an idea on a simpler system of how to best organize a core in a C++ framework that accounts for both accuracy and performance. The current in-house core architecture for C# is very simple and very robust, I can (and have) added a blank core template in a matter of hours. But, it just won't work for modern systems with higher clock speeds. I need a new approach, but I also want something that's not just a one-off, a new architecture that's re-usable would be ideal. And since I learn nothing from looking at other people's code, I really need to dive in myself. Looking at the current landscape in BizHawk, it seems like the 2 most important cases to consider would be IBM PC and Amiga. IBM would probably be simpler at first, but the IBM landscape is so broad this might be a very deep rabbit hole. It might get the most use though. Amiga would have the advantage of needing an in-house 68000 cpu which could be re-used on a lot of things. But I'm not sure how much those things would actually be used (a lot of people still just use gens even though we have gensplusgx for example.) Also instruction decoding for 68000 is a nightmare, but once that part is done it wouldn't be so bad. I'm open to suggestions here though. Is there a system that has a currently ported core that would be better off with something in-house that has more control? Is there a system I'm overlooking that is more modern then old 8-bit stuff that someone would definitely use? What I don't want though is something like SNES where infinite effort would be expended in PPU details that have nothing to do with overall architecture. Basically I want a roadmap for myself like: Easy system, work out a modern C++ architecture and play around with optimization | | v Medium System, more modern CPU architecture that requires careful planning and optimization. Pipelines, cache misses, etc. but overall system still tractable. | | v N64 If anyone has any input here I would really like to hear it. Thanks!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Hey that's pretty cool. Nice job making sure things are realistic. By console verification do you mean the entire TAS, or just verify that the trick is possible?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
It's significantly slower then the one by FractalFusion and I don't really see the point of moving the goal posts here. It's an interesting glitch I guess though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
That's awesome! There sure is a lot of cool stuff happening out there right now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
It's definitely possible to get 9 and 13 to appear together. I ran the following script in neshawk:
local HIT_T = true;
local do_once_temp = true;
local i = 0;
local j = 0;
local k = 0;
local l = 0;


while (HIT_T == true) do
	
	if (do_once_temp) then
		savestate.loadslot(1);
		
		do_once_temp = false;
	end

	i = math.random(0,4);

	if (i == 0) then
		joypad.setfrommnemonicstr("|..|.......A|");
	end		
	
	if (i == 1) then
		joypad.setfrommnemonicstr("|..|......B.|");
	end	
		
	if (i == 2) then
		joypad.setfrommnemonicstr("|..|....S...|");
	end		
	
	if (i == 3) then
		joypad.setfrommnemonicstr("|..|........|");
	end		
	
	if (i == 4) then
		joypad.setfrommnemonicstr("|..|......BA|");
	end		
	
	if (emu.framecount() == 800) then

		console.write(memory.readbyte(0x0661));
		console.write('-');
		console.write(memory.readbyte(0x065F));
		console.write('\n');
		
	
		l = l + 1;
		savestate.loadslot(1);
	end	

	emu.frameadvance()
end
The starting frame (where savestate 1 is loated) was 536. This gave me values of 9 and 13 about 1% of the time. The key seems to be to delay when you press start. Originally I ran the script having already pressed start on the first possible frame and I got 0 results after much longer runs. In the above script, there is only a 1 in 5 chance to hit start on any frame. As you can see this script didn't save what the inputs actually were, but hopefully this helps a little.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
This core is shaping up and starting to approach release levels of accuracy. The biggest problem I'm facing right now is that various homebrew's I test don't look right compared to O2EM, but I'm not confident that O2EM is truly representative of hardware. At this point if anyone is willing to do some beta testing with some actual retail Odyssey2 games I would appreciate any bug reports. TASing should be in full working order at this point.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I have been informed that this doesn't work on the current release build. It looks like the game is broken in 2.3.2 and I fixed it in the dev build without realizing it (where i do all my TAS work.) Looks like this will have to be delayed until the next official release. Nevermind, it works fine on 2.3.1, so I'll just change the version to that.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
The runs are practically indistinguishable, so I wasn't planning on making a temp encode.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Yes I checked BizHawk 2.2.1 and it starts late there as well, not sure how everyone missed that.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Yes it can. The deathless run actually loses 3 frames in that level in the published run, so this improvement saves 6 frames over the published deathless run. Also the deathless run starts the game 6 frames late, so the total improvement is 12 frames. I'm still going over the deathless run but so far haven't found anything else, will probably submit it soon.
Post subject: O2Hawk (Odyssey 2 core)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Now that I have this core more in working order I thought I'd make a thread for it. there are still numerous bugs to fix but things are slowly coming together. Some games are now completely playable, but it will probably be another couple of weeks before this core can be declared ready for TAS production.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool, nice work. Glad that glitch was reproduced and this isn't left as another open end. yes vote.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
My bad, you now have edit privileges. Also thanks for the temp.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Small update on Odyssey2. A lot of things are getting cleaned up and into a functional state. I can get in game with controller support now. A lot of things don't work yet but things are progressing at a reasonable pace. It turns out that this system is quite cumbersome. The PPU is very unconventional and un-intuitive, and the input/output functions of the CPU are used in tricky ways. Good thing there is good documentation or I would be quite lost.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool use of lua
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/59688834986020373 Here is a start of a resync of the xtreme 2 run to GBHawk. It only is synced though the intro stage. RNG looks like it will be way off for this one, so I probably won't really try to complete this one after how grueling the first xtreme game was. For completeness here is the verification file resynced too. http://tasvideos.org/userfiles/info/59687251167657941 So at least this takes away the tedium of having to convert the files. The first Xtreme game was way too much of a time sink, so if anything I'll only periodically come back to this one and slowly sync it up. Not sure if any real improvements in game knowledge have been found since the run was published or what improvements are possible.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Awesome! Doesn't really seem like 100%, but I'm sure some suitable category can be worked out. Yes vote!