Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Talk about development tools here

Moderator: BigEvilCorporation

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Stef » Tue Jun 13, 2017 9:20 am

In fact i try to load up the rom.bin file, but it say that this is not an executable file, trying to load the rom.out doesn't seems to be better here...
Which file is GDB supposed to use then ?

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Tue Jun 13, 2017 4:01 pm

GDB need the ELF file that is used to make the .bin file using objcopy

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Stef » Tue Jun 13, 2017 8:24 pm

Which is the rom.out file then... weird it doesn't accept it. I may test again.

Edit: Ok i finally found a way to correctly load the rom.out file (and so the symbol), Code::blocks is a bitch to setup GDB...
But still meet the same error :

<<
[debug]> target remote localhost:1234
[debug]Remote debugging using localhost:1234
[debug]0x00000200 in _Entry_Point ()
[debug]>>>>>>cb_gdb:
[debug]> directory D:/apps/SGDK/sample/bench/

In _Entry_Point () ()

[debug]> directory D:/apps/SGDK/sample/bench/
[debug]Source directories searched: D:/apps/SGDK/sample/bench;$cdir;$cwd
[debug]>>>>>>cb_gdb:
[debug]> target remote tcp:localhost:6868
[debug]Source directories searched: D:/apps/SGDK/sample/bench;$cdir;$cwd
[debug]>>>>>>cb_gdb:

Connected

[debug]> bt 30
>>

Then BlastEm show the error message...
Something weird is the
<<
[debug]> target remote tcp:localhost:6868
>>

GDB command, i have no idea from where it comes !
And of course i guess that give some troubles :-/

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Wed Jun 14, 2017 7:18 am

Stef wrote:Edit: Ok i finally found a way to correctly load the rom.out file (and so the symbol), Code::blocks is a bitch to setup GDB...
Unfortunately, I have no experience on the Code::blocks side of things.
Stef wrote:But still meet the same error :

<<
[debug]> target remote localhost:1234
[debug]Remote debugging using localhost:1234
[debug]0x00000200 in _Entry_Point ()
[debug]>>>>>>cb_gdb:
[debug]> directory D:/apps/SGDK/sample/bench/

In _Entry_Point () ()
This part is progress. BlastEm automatically breaks at the entry point of the ROM so you have a chance to set breakpoints before any code runs and that part seems to be working at least.
Stef wrote:Something weird is the
<<
[debug]> target remote tcp:localhost:6868
>>

GDB command, i have no idea from where it comes !
And of course i guess that give some troubles :-/
That is super weird. Hard to say whether it's the cause or just a symptom. When I have a chance, I'll try to get Code::blocks setup to see if I can replicate this problem.

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Stef » Wed Jun 14, 2017 9:18 am

To be honest i think GDB support in Code::blocks is not the best one, probably the problem comes from there. I should try to manually connect GDB to blastEm and send commands by hand outside Code::blocks to see if it works or not.

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by King Of Chaos » Sat Jun 17, 2017 1:07 pm

I'm met with this message upon starting BlastEm (using clean config);

Image

Otherwise my Logitech Cordless RumblePad 2 works fine in BlastEm.

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Sat Jun 17, 2017 7:56 pm

King Of Chaos wrote:Otherwise my Logitech Cordless RumblePad 2 works fine in BlastEm.
It looks like that controller lacks a guide button. You will probably want to just remove the guide button mapping in default.cfg. Additionally, you might want to map ui.exit to a different button if you don't want to use the keyboard to bring the menu up after selecting a game.

On an unrelated note, I've been working on a bunch of the issues brought up here. I'm hoping to do a point release relatively soon, but you can try a nightly build if you want a preview. Be warned, nightly builds are not yet sorted by date.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by TmEE co.(TM) » Mon Jun 26, 2017 12:41 am

Screen centering in interlace mode seems to be correct in 60Hz but in 50Hz there's a big downwards shift.
You can test it with this thing I made a while ago : http://www.tmeeco.eu/BitShit/XMAS2K9.BIN

Is there means to change region on the fly ? It would be a nice feature, especially since there seems to be no way to force a specific region other than changing ROM header.

I noticed that CRAM dots aren't emulated in the right border, and in vertical border or forced blanking the dot pattern differs from hardware (ignore the halfline in bottom, it is a thing the TV does not hardware) :
Image
Image (this image will self destruct one day when I clear out the temp files).

It is pretty cool to see that sprite rendering getting borked by forced blanks is emulated to some extent :D (in emulator it is 100% stable, no flicker, while on hardware the "garbage" is one line higher and flickers).
Also the palette difference seen between the pics is due to DMA that's triggered in two writes. If Z80 access happens near/between (I don't have a logic analyzer) the trigger writes the DMA gets cancelled and the ROM is setting up nearly perfect conditions for 99.9% of the DMAs to fail. That is probably the reason why the official docs tell you to busreq Z80 prior to DMA. This can also be used to differentiate 315-5960 (MD2 VA4, Genesis 3 VA1) and 315-6123 (Genesis 3 VA2) ASICs from the earlier models, they have a bit different timings as far as 68K and Z80 interactions go (both have the CPUs in the ASIC). I have no idea how MD2 VA2/2.3 fares, it has a different ASIC and I got no machines to test.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Mon Jun 26, 2017 4:58 am

TmEE co.(TM) wrote:Screen centering in interlace mode seems to be correct in 60Hz but in 50Hz there's a big downwards shift.
You can test it with this thing I made a while ago : http://www.tmeeco.eu/BitShit/XMAS2K9.BIN
Ah, it seems this only happens with the SDL2 renderer which might explain why I hadn't noticed it before. Thanks for the report.
TmEE co.(TM) wrote:Is there means to change region on the fly ? It would be a nice feature, especially since there seems to be no way to force a specific region other than changing ROM header.
You can force a region using the -r command line parameter and you can set your preferred region in the config file for ROMs that report multiple regions, but there isn't currently a way to do this at runtime. I agree that it would be a useful feature.
TmEE co.(TM) wrote:I noticed that CRAM dots aren't emulated in the right border,
I have a guess as to why that might be, but I'll have to look into it. I don't emulate bus contention per se, but instead rely on the fact that I actually write the data for the "active" part of the display to the framebuffer a bit early (essentially as soon as both planes have finished their tile fetches for a set of 2 columns). This allows me to just overwrite the existing data if a CRAM write occurs during the appropriate time period. It's possible I'm drawing the right border too late though. Also possible there's just a timing issue somewhere that's causing the write to hit the wrong external slot.
TmEE co.(TM) wrote:and in vertical border or forced blanking the dot pattern differs from hardware
Huh, that's interesting. Your pic suggests that there's only 2 slots of latency in the FIFO rather than the 3 that I thought there were based on the direct color demos. The reason there are two separate gaps is due to a combination of two separate factors. The first is that there's some latency in the FIFO so that even when the display is off and the target is word-wide, the FIFO fills up a bit when performing a DMA. The other is that a refresh slot disrupts the write end of the FIFO for one slot, but the DMA read engine for two slots. So the first gap is the refresh cycle and the second gap is the FIFO running out of data.
TmEE co.(TM) wrote:It is pretty cool to see that sprite rendering getting borked by forced blanks is emulated to some extent :D (in emulator it is 100% stable, no flicker, while on hardware the "garbage" is one line higher and flickers).
Yeah, certain things are too stable at this point, probably in large part due to the main causes of timing instability (refresh and delays from the Z80 stealing the bus) being implemented with only an approximation at present. The one-line discrepancy is weird though.
TmEE co.(TM) wrote:Also the palette difference seen between the pics is due to DMA that's triggered in two writes. If Z80 access happens near/between (I don't have a logic analyzer) the trigger writes the DMA gets cancelled and the ROM is setting up nearly perfect conditions for 99.9% of the DMAs to fail. That is probably the reason why the official docs tell you to busreq Z80 prior to DMA. This can also be used to differentiate 315-5960 (MD2 VA4, Genesis 3 VA1) and 315-6123 (Genesis 3 VA2) ASICs from the earlier models, they have a bit different timings as far as 68K and Z80 interactions go (both have the CPUs in the ASIC). I have no idea how MD2 VA2/2.3 fares, it has a different ASIC and I got no machines to test.
Interesting. Anyway, thanks for the reports!

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by TmEE co.(TM) » Fri Jul 07, 2017 12:05 pm

...aaand here's one more. This ROM makes the emulator silently quit : http://www.tmeeco.eu/BitShit/PSMUSIC.BIN
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Sat Jul 08, 2017 4:32 am

TmEE co.(TM) wrote:...aaand here's one more. This ROM makes the emulator silently quit : http://www.tmeeco.eu/BitShit/PSMUSIC.BIN
This ROM specifies that it has SRAM at the start of actual RAM. For silly reasons this caused a NULL pointer dereference. I've changed my RAM header parsing code to ignore anything that starts >= $800000 which prevents the problematic situation from occurring. Fix has been pushed to the public repo and will be in the tonight's nightly build.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by TmEE co.(TM) » Mon Jul 10, 2017 7:41 am

Works nice now ~
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by TmEE co.(TM) » Sat Jul 29, 2017 11:47 am

I got a new machine which does have OpenGL working and i tried the interlace mode stuff and it seems that it doesn't actually show any interlacing, only one of the fields is ever shown. The video settings used :

Code: Select all

video {
  aspect stretch
  width 694
  height 588
	vertex_shader default.v.glsl
	fragment_shader default.f.glsl
	scanlines off
	vsync off
	fullscreen off
  gl on
  scaling nearest
	ntsc {
		overscan {
      top 0
      bottom 0
      left 0
      right 0
		}
	}
	pal {
		overscan {
      top 0
      bottom 0
      left 0
      right 0
		}
	}
}
With GL off interlacing happens, just image is shifted down and scaling is off (some lines have extra pixel height).
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Mask of Destiny
Very interested
Posts: 615
Joined: Thu Nov 30, 2006 6:30 am

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by Mask of Destiny » Mon Jul 31, 2017 9:55 pm

TmEE co.(TM) wrote:
Sat Jul 29, 2017 11:47 am
I got a new machine which does have OpenGL working and i tried the interlace mode stuff and it seems that it doesn't actually show any interlacing, only one of the fields is ever shown.
Weird. I assume this is with a recent nightly and not the stable release (important distinction due to some shader changes)? What OS/GPU combo was this on? Can you upload and/or send me a screenshot?

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2

Post by TmEE co.(TM) » Tue Aug 01, 2017 7:08 am

I'm using the most recent nightly and the GPU is intel GMA 4500, it happens in both XP pro 32 and Windows 7 Home Premium 64bit.

This is what I get :
Image

This is what it should look like :
Image
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Post Reply