Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
Moderator: BigEvilCorporation
-
- 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
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 ?
Which file is GDB supposed to use then ?
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
GDB need the ELF file that is used to make the .bin file using objcopy
-
- 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
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 :-/
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 :-/
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
Unfortunately, I have no experience on the Code::blocks side of things.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...
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: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 () ()
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 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 :-/
-
- 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
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.
-
- 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
I'm met with this message upon starting BlastEm (using clean config);
Otherwise my Logitech Cordless RumblePad 2 works fine in BlastEm.
Otherwise my Logitech Cordless RumblePad 2 works fine in BlastEm.
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
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.King Of Chaos wrote:Otherwise my Logitech Cordless RumblePad 2 works fine in BlastEm.
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.
-
- Very interested
- Posts: 2442
- 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
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) :
(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 (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.
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) :
(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 (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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
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: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
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: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 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:I noticed that CRAM dots aren't emulated in the right border,
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:and in vertical border or forced blanking the dot pattern differs from hardware
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:It is pretty cool to see that sprite rendering getting borked by forced blanks is emulated to some extent (in emulator it is 100% stable, no flicker, while on hardware the "garbage" is one line higher and flickers).
Interesting. Anyway, thanks for the reports!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.
-
- Very interested
- Posts: 2442
- 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
...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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
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) wrote:...aaand here's one more. This ROM makes the emulator silently quit : http://www.tmeeco.eu/BitShit/PSMUSIC.BIN
-
- Very interested
- Posts: 2442
- 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
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 2442
- 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
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 :
With GL off interlacing happens, just image is shifted down and scaling is off (some lines have extra pixel height).
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
}
}
}
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 616
- Joined: Thu Nov 30, 2006 6:30 am
Re: Blastem 0.5.0 - Many accuracy improvements, basic SMS support, runs OD2
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) wrote: ↑Sat Jul 29, 2017 11:47 amI 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.
-
- Very interested
- Posts: 2442
- 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
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 :
This is what it should look like :
This is what I get :
This is what it should look like :
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
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen