Nulldce On The Beagleboard


'Fishbong' said:
Wait, what? Sorry i don´t get it.
There´s a dreamcast emulator. And there is a dreamcast compatible WinCE binary.

Why can´t we use the emu to run the binay? Is it somehow stored in the dreamcast and there´s no way to dump it?
I'm with you; I don't understand what the problem is either. Maybe someone will come along and better explain this problem that everybody seems to think we will have.

-God Ginrai
 
Last edited by a moderator:
afaik, nulldce as it stands doesnt emulate all of the dreamcast's chips, and there are one or two chips that are used almost exclusively for wince, which would be ridiculously difficult to emulate, and decrease the speed of the emulator to an unusable level.
 
Last edited by a moderator:
Also, we don't know if there's any "distribution" of the WinCE binary needed or not. Maybe it's included with the games themselves? Who knows.
 
Last edited by a moderator:
The WinCE binary is included with the games that use it.

WinCE isn't going to be emulated because MMU translation isn't going to be emulated. It's that simple (although there could be other reasons too).
 
Last edited by a moderator:
'Fishbong' said:
Wait, what? Sorry i don´t get it.
There´s a dreamcast emulator. And there is a dreamcast compatible WinCE binary.

Why can´t we use the emu to run the binay? Is it somehow stored in the dreamcast and there´s no way to dump it?
The Dreamcast ran a version of WinCE for certain games.
 
Last edited by a moderator:
'naples39' said:
'Pleng' said:
I, for one, would love to know if there's any way to find out which games rely on WinCE, and therefore will not be able to run on Pandora.


4x4 Evolution
Apricot (T37910M)
Armada (T40301N 00)
Atari Anniversary Edition (T15130N)
Caesars Palace 2000 (T-12504N)
Championship Surfer (T41403N)
Densha de Go 2 (jp)
Ducati World (T-8113N)
Get!! Colonies (jp)
Hidden and Dangerous (T-40502-N)
Hundred Swords (HDR-0124)
Jimmy Whites Snooker 2 (eu)
KISS Psycho Circus (T41901N)
Kitahei Gold (T39801M)
Maximum Pool
Midway's Greatest Arcade Hits Vol. 1 (T-9713N)
Midway's Greatest Arcade Hits Vol. 2 (T-9714N)
Miss Moonlight (T18702M)
NFL Quarterback Club 2001 (T-8115N)
Nightmare Creatures II (T9504M)
Puzzle Bobble 4 (aka Bust-A-Move 4
Railroad Tycoon II (T41902N)
Rainbow Six (T40401N)
Resident Evil 2 (T7004D 50)
Rogue Spear|Tom Clancy's Rainbow Six: Rouge Spear
Rune Jade (T14304M)
Sega Rally 2 (MK-5101950, HDR0010)
South Park: Chefs Luv Shack
Space Griffon|Space Griffon VF-9 (T39601M) (jp)
Space Griffon|Space Griffon Blue Steel: Variable Formula (jp)
Spirit of Speed 1937
Starlancer
Super Producers (T14303M)
Super Robot Wars Alpha (jp)
Super Runabout (T22101M)
Super Runabout|Super Runabout: San Francisco Edition
Tom Clancy's Rainbow Six
Tomb Raider Chronicles (T36815D05)
Tomb Raider The Last Revelation (T-36806N, T36804D05)
Virtua Cop 2
White Illumination (T14301M)
Who Wants To Beat Up A Millionaire
Wild Metal (T40501D-50)
World Neverland 2|World Neverland 2 Plus: The Waktic Republic of Pluto (jp)
World Neverland Plus|World Neverland Plus: The Olerud Kingdom Stories (jp)
Worms Armageddon
Worms World Party
Yuki Gatari (T37909M)


- Other: -
Half-Life (Bootleg)
QuakeDC (Titanium Studios, Freeware)
Defense Commander (Titanium Studios, Freeware)
PBA Bowling (Bootleg)
Retro Sonic (Freeware)
GypPlay (Freeware
BoobPlay (Freeware
Sintendo (Freeware)
Gleam (Freeware)

Source: CODE
http://www.dcemu.co.uk/vbulletin/showthread.php?t=43804
So basically there is absolutely no way to emulate these games...

No Half-Life, Sega Rally 2 or Wild Metal :(
 
Last edited by a moderator:
'Raz' said:
...

So basically there is absolutely no way to emulate these games...

No Half-Life, Sega Rally 2 or Wild Metal :(
We should really be happy if there will be a couple of playable games. Must you really start whining because 3 games of the big library of great DC titles are out of reach?

Some weeks ago it was: "No Dreamcast is pretty much impossible"
Now it's "what? We can't play half-life with nullDC on it?"

Strange...

Again, my biggest hopes go to you, dear nullDC-devs. If you can get some games working, I'd be very very happy.
 
Last edited by a moderator:
And what's wrong with asking if there is a workaround.... Well I'm sorry if it seemed as if I was whining... But those aren't just three games
 
Last edited by a moderator:
'Raz' said:
So basically there is absolutely no way to emulate these games...

No Half-Life, Sega Rally 2 or Wild Metal :(
'Chip' said:
Some people are really amazing. It's as if you spent all day baking a delicious pie with hand picked fruit and fresh ingredients, and hand delivered it to their house. When you showed up at their door with the free, tasty pie and said "Here, this is for you", all they could think to say is "What, no whipped cream?"
Something tells me I'm going to end up pasting that into every emulator thread at some point.
 
Last edited by a moderator:
'Raz' said:
And what's wrong with asking if there is a workaround.... Well I'm sorry if it seemed as if I was whining... But those aren't just three games
The problem is that the discussion is now going on for a while and everything is answered. There is no workaround unless someone volunteers to make the best MMU emulator the world has ever seen and all the other components that may be needed to emulate games that are based on and come with a basic wince. It's very understandable that they concentrate on the titles that will need a lot less work and pandora-resources, as the biggest part of the dreamcast-library may still work without wince-compatible emulation.
 
Last edited by a moderator:
Look, I may not be a big computer genius, Im only 14... but I know that the DC will push the Pandora to the limits... Its like saying I want a PSX full speed on an iPhone.... (No Offense Zod, Great work) but it just aint possible for every single game and I know that...

All I asked was an innocent question and I was in no way intentionally being rude to or downsizing the devs ability... Amazingly, before even it gets shipped, these wonderful people have gotten PoP: 3D to work on the DC... I get it, DC pushes the Pandora and coding hardware into software is hard, but cant I just show a spark of curiosity... A thirst for knowledge is something that many people exhibit as much anymore...

Sorry about the whining part, but I only expressed what I felt at that moment, not on the whole overall project. Im a DC fanatic and have been around the ropes in DC homebrew, so there are a lot of games Ive played. Right now, I have a collection of around 52 DC games which keeps growing and needless to say 49/52 aint bad... Heck I couldnt even fit that much onto an SD card with all the other junk Ill have, nor would I feel the need to...

No Sega Rally? Ill Play Le Mans
No Wild Metal? Ill Play Red Dog
No Half-Life? Ill Play Quake III or Unreal Tournament

With that said, I dont ever want to be told that I was being rude to any dev whos doing this out of his free time for people like me who want a portable dc..

Mad props to ZeZu and drkIIRaziel
 
'Chip' said:
'Chip' said:
Some people are really amazing. It's as if you spent all day baking a delicious pie with hand picked fruit and fresh ingredients, and hand delivered it to their house. When you showed up at their door with the free, tasty pie and said "Here, this is for you", all they could think to say is "What, no whipped cream?"
Something tells me I'm going to end up pasting that into every emulator thread at some point.


No kidding.
 
Last edited by a moderator:
I'm trying not to be a hater <_<
 
Last edited by a moderator:
Yeah, wince requires full mmu emulation and uses 1kb pages.While it is possible to emulate it at resonable speeds on PCs, on pandora (and other similar devices) it won't be really possible.nullDC on pc provides full (but a bit buggy ;p) mmu emulation on interpreter only (Can boot most wince games, few make it to ingame).For nullDCe there is no plan to support mmu.
 
Last edited by a moderator:
'drkIIRaziel' said:
Yeah, wince requires full mmu emulation and uses 1kb pages.While it is possible to emulate it at resonable speeds on PCs, on pandora (and other similar devices) it won't be really possible.nullDC on pc provides full (but a bit buggy ;p) mmu emulation on interpreter only (Can boot most wince games, few make it to ingame).For nullDCe there is no plan to support mmu.
ok, a nubie question (and i dont care about wince@sh4, just asking on principle): is the emulation of mmu that problematic? basically, AFAICT it should be a TLB lookup per address, plus a page flag/flags check, usually for write-protect & absence trapping. performance-wise, ldr/str should not be that commonly met (statistically, compared to the rest of the op codes), and they would be the only op class affected. so what am i missing here?
 
Last edited by a moderator:
'darkblu' said:
ok, a nubie question (and i dont care about wince@sh4, just asking on principle): is the emulation of mmu that problematic? basically, AFAICT it should be a TLB lookup per address, plus a page flag/flags check, usually for write-protect & absence trapping. performance-wise, ldr/str should not be that commonly met (statistically, compared to the rest of the op codes), and they would be the only op class affected. so what am i missing here?
Heh, the way you put that as "TLB lookup", if taken literally, do you know how slow that would be? There are 64 TLB entries on the Dreamcast's CPU and you'd have to check all of them. Even if the TLB entries were sorted and implemented as a binary search it'd still be very slow. The alternative is to use a full address space array, but for 1KB pages in a 4GB space you'd need at least 16MB, which might not mean the design goals of nullDCe.

And actually, loads and stores happen all the time - on GBA (ARM + Thumb, with ARM execution being about 40% of the instructions on average) loads/stores can represent over 30% of execution time. From what I've heard about Dreamcast games the situation is even worse which makes sense if you look at the SH4 ISA. Small immediates means that you have to do loads all the time to get constants, even for branch targets. And this leads to another conundrum, because nullDC relies on an easy mapping to determine that constants in RAM remain constants by using invalidate on write (with protection via the MMU) so it can perform constant propagation to eliminate these loads. When you put an MMU abstraction between the virtual and physical address where said mapping can change suddenly and all at once then you lose the ability to do this (at least without clearing the translation cache every time the TLB is invalidated, which is a lot on a multitasking OS).

You're also forgetting ITLB. With 1KB pages it means that you have to fragment translated blocks into 1KB regions then do indirect branches inbetween them in order to handle changes in mapping that vary at runtime, and you have to tag blocks based on their virtual to physical mapping. This adds complication to the design of the recompiler.

All in all, if the memory map is simple enough and most reads/writes are going to one region of RAM then it'd be fastest just to check if things fall in there, faster than emulating TLB which can be completely arbitrary. Remember, this is about emulating a 200MHz SH4 (mildly superscalar CPU) on a 500MHz (as far as the nullDCe devs will consider) Cortex-A8. At least some compromises are going to have to be made for this to be even remotely feasible.
 
Last edited by a moderator:
Keep up the good work nullDC Devs :D Can't wait for updates
 
Last edited by a moderator:
'Exophase' said:
The alternative is to use a full address space array, but for 1KB pages in a 4GB space you'd need at least 16MB, which might not mean the design goals of nullDCe.

You can use a two-level approach to reduce memory requirements. But I agree MMU simulation is costly.

QUOTE
And actually, loads and stores happen all the time - on GBA (ARM + Thumb, with ARM execution being about 40% of the instructions on average) loads/stores can represent over 30% of execution time.

Didn't you mean 30% of instructions? At least that's my experience...

QUOTE
All in all, if the memory map is simple enough and most reads/writes are going to one region of RAM then it'd be fastest just to check if things fall in there, faster than emulating TLB which can be completely arbitrary.

I'm wondering how much "cleverness" one can put in the MMU/TLB simulation to overcome performance issues. I mean one could write a fully compliant MMU simulation which could optimize things depending on the current mapping. That could work well for "easy mappings", but of course for an OS that does many context switching that wouldn't work that well.

Anyway getting good performance with MMU simulation is a extremely difficult :)
 
Last edited by a moderator:
Back
Top