If said game uses a part of the code that is not correct on real dreamcast it will crash if it uses that same part on dcemulator it will runransom wrote:I have a real DC, but no gdemu I won't be wasting cds on tests...
Interesting to see why a game would work on emulator but not real DC? With the 1000s of retro conversions I've made across many different platforms its always the emulator fails over hardware...
Not all games will use parts of the code that are wrong and they will work on both..
I'll be making a few more if you don't want them posted then I won't bother posting them here.
Also the LED drive light creates a full horizontal black bar o the bottom of the screen which covers the lower part of the game display.
Games like Pacman 500, Ms Pacman 500 Deluxe Galaga fail to see the ship because of it.
Oh and I won't be making images. Just don't have the time... all I make is bpotable games that can boot with redream. If I can figure out a way to test on my real dc then I'll do all my tests on that.
If anyone wants to expand on my set and add game images be my guest.
I will not know it's wrong if i just used dreamcast emulator..
Emulators for dc dont emulate the hardware in the same way.. They allow unalign reads and dont emulate the pvr hardware correct it's common for dc homebrew to work on emulators but not hardware it's why there is such a problem with people not testing..
There Was indie title not long ago that dead crashes on hardware on the 3rd level because it seems they did not know you cant trust any dcemulator and press a disk and sell it was a total cock up ./
there coded to the sega docs for the sega sdk.. where not using that here.. Sega docs there using lie about all sorts of things..
I know about the led's at the buttom doing this i can removed it with a simple src change I will post you in pm a version with out it for you..
ON dreamcast it's the other way around for emulators..
Dreamcast is very picky about code being aligned emulators are not..
Pvr hardware is unlike any other system so pc emulator is just syphoning the calls to your gpu thru the api it does not emulate like you would think.. I would love that what works on dc emulators works on hardware it would make my job easy.. but it's not the case..
Till you run it on real dreamcast not a one can you have faith it will function..
I have a whole heap of ports that work on redream that dont on hardware.. people all remember my jazzy jackrabbit christmas dos port that runs fine on redream but crashes instant on dreamcast..
I learned the hard way I have been coding for the dreamcast since 2002.. we had no dc emulators then but you can be sure all homebrew 2005 down always works on hardware..
This is why testing on dc emulators for things like this make it redundant.. good to see if a game boots and works but does not mean it run like it does on dc emulator it can be way slower or faster or just crash ..
Example would be Lotus Esprit Turbo Challenge works on this on redream it crashes freezes on real dreamcast..
Talk with author of demul
18 PM] ian micheal: emulators dont have have this right .. metalic demul author told me about this problem in the sega docs
[9:19 PM] ian micheal:
MetalliC: however, as you noticed on hardware blending always works, no matter if it opaques or PTs
[9:19 PM] ian micheal: this not the case in the sega docs or on emulators btw
[9:20 PM] ian micheal:
MetalliC: in a nutshell: Core's ISP does sorting of all opaques in the list, so only one topmost (or whatever pass the depth-checks) texel will be rendered by TSP, possible with blending
but DX/OGL just draw opaques in usual way - all of them one by another, with overdraw and with no blendind, so in result only topmost will be visible. but, obviously, in this case can not be used blending
`
[9:20 PM] ian micheal: so no emulator does it correct
[9:21 PM] ian micheal: this is the demul author btw
[9:22 PM] ian micheal:
MetalliC: Tile Accelerator, basically polygon converter, which receive input display lists via DMA/SQ, convert them to native CORE renderer format and put into GPU RAM
neither of emulators really emulate it, all of them just parse input lists and save data into internal arrays/structures
[9:22 PM] ian micheal: why i said using any emulators for doing real pvr stuff is pissing in the wind
[9:23 PM] ian micheal:
MetalliC: so, "CORE" renderer have such inputs from RAM:
1) all the polygons ISP/TSP parameters and triangle strips (6 vtx max)
2) object pointer lists for each tile (600 in total) - list of pointers to 1) objects above which should be rendered in specific tile
- region array - pointers to above 2) lists and misc rendering control flags (Z clear etc)
in earlier PVRs all of this should be generated by host CPU and put into GPU RAM.
in PVR2s 1) and 2) automatically generated by TA. it also does infinite strip division to max 6 vertices strips supported by CORE
[9:24 PM] ian micheal:
emulators does same thing (force blending off for opaques) internally, that's why it works
[9:25 PM] ian micheal:
MetalliC: however, as you noticed on hardware blending always works, no matter if it opaques or PTs
[9:25 PM] ian micheal: above is why the nehe20 example i ported worked on demul but was broken on hardware
[9:26 PM] ian micheal: So have this in mind when testing on emulators.. that it's not doing the same thing at all
[9:26 PM] ian micheal:
MetalliC: as of emulators - in this case they just follows the sega's docs, which iirc says "always set no blending for opaques" or specific depth mode for PTs etc
[9:26 PM] ian micheal: above is not correct on real hardware
[9:27 PM] ian micheal:
MetalliC: but, docs often lying. especially Yamaha's docs
[9:27 PM] ian micheal: All this really hurt me for months not knowing this
[9:27 PM] ian micheal: sega docs lying nehe20 proved it
[9:31 PM] ian micheal: Most people believe other things but this is fact what he is saying
Main thing is dcemulators allow bad code from me to run..... A real dreamcast does not allow this
We use homebrew toolkit named kos not like lot of other systems using official SDK's of which most of the emulators out there use as info..