|
Joined: May 2004
Posts: 1,772 Likes: 34
Very Senior Member
|
Very Senior Member
Joined: May 2004
Posts: 1,772 Likes: 34 |
yep, that's my point, the CPU core is not much more than a skeleton CPU core with the opcodes and flags needed by a simple chess AI implemented.
I doubt a complex system is going to go very far at all without some form of interrupts regardless of how well the PCE chips are implemented ;-)
|
|
|
|
Joined: Aug 2009
Posts: 1,250 Likes: 171
Very Senior Member
|
Very Senior Member
Joined: Aug 2009
Posts: 1,250 Likes: 171 |
Just for the record: I've just tried the full Virtual Boy software list, only two games (Wario Land and nesterfb) shows a Warning screen then dies on work RAM checks (presumably vblank irq wait).
And mind you, most games on Virtual Boy doesn't even load correctly! (i.e. cart loading is wrong)
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
please, could you give more details about the correct loading? I'd fix it, if I knew what is wrong. the list was just created to preserve the dumps, but it was untested (and that's why all the games have the supported=no flag)
|
|
|
|
Joined: Aug 2009
Posts: 1,250 Likes: 171
Very Senior Member
|
Very Senior Member
Joined: Aug 2009
Posts: 1,250 Likes: 171 |
Boot vectors doesn't load properly. V810 is just like I86 based machines, i.e. boot vectors are at the end of the memory space. And basically 2097152 (0x200000) size ROMs boots, while all of the others don't. Translated: AM_RANGE( 0x07000000, 0x071fffff ) AM_MIRROR(0x0e00000) AM_ROM AM_REGION("user1", 0) /* ROM */
This loads plainly to memories 0x07000000 - 0x071fffff, that can be ok for 0x200000 sized roms, but for other games you put the data at 0x07000000 - 0x070fffff and 0x07000000 - 0x0707ffff ... but you must at least put it on the final 0x07180000 - 0x071fffff bank (and I presume the cart area is mirrored for these too) It's probably easier to do than to explain ... EDIT: whatever, just use this:
static DEVICE_IMAGE_LOAD( vboy_cart )
{
UINT32 size;
UINT8 *ptr = memory_region(image.device().machine, "user1");
if (image.software_entry() == NULL)
{
size = image.length();
if (image.fread( ptr, size) != size)
return IMAGE_INIT_FAIL;
}
else
{
size = image.get_software_region_length("rom");
if(size == 0x200000)
memcpy(ptr, image.get_software_region("rom"), size);
else if(size == 0x100000)
{
memcpy(ptr, image.get_software_region("rom"), size);
memcpy(ptr + 0x100000, image.get_software_region("rom"), size);
}
else if(size == 0x080000)
{
memcpy(ptr, image.get_software_region("rom"), size);
memcpy(ptr + 0x080000, image.get_software_region("rom"), size);
memcpy(ptr + 0x100000, image.get_software_region("rom"), size);
memcpy(ptr + 0x180000, image.get_software_region("rom"), size);
}
else
return IMAGE_INIT_FAIL;
}
return IMAGE_INIT_PASS;
}
Last edited by Kale; 11/16/10 10:17 PM.
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
so do you suggest to mirror twice the 1048576 roms and four times the 524288 roms? EDIT: ok, you were indeed suggesting that. but then it would be better to simply edit the xml list to use ROM_RELOAD like in MAME I will do it tomorrow if you don't beat me to it EDIT2: exact code
<rom name="aaa.bin" size="1048576" crc="xxxxxxxx" sha1="xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx" offset="000000" />
<rom size="1048576" offset="100000" loadflag="reload" />
|
|
|
|
Joined: Aug 2009
Posts: 1,250 Likes: 171
Very Senior Member
|
Very Senior Member
Joined: Aug 2009
Posts: 1,250 Likes: 171 |
Ok, just do it.
With this more games shows the disclaimer then still dies due of missing irqs (and that requires non-trivial work) And no, for the 1.234 time, I'm still busy with K8 :P
|
|
|
|
Joined: Jan 2006
Posts: 3,691
Very Senior Member
|
Very Senior Member
Joined: Jan 2006
Posts: 3,691 |
don't worry I'll do it tomorrow. in bocca al lupo for k8
|
|
|
|
Joined: Feb 2005
Posts: 449
Senior Member
|
Senior Member
Joined: Feb 2005
Posts: 449 |
Compiling src/mess/machine/ti99/tn_usbsm.c... tn_usbsm.c src\mess\machine\ti99\tn_usbsm.c(272) : warning C4333: '>>' : right shift by too large amount, data loss Compiling src/mess/machine/ti99/tn_ide.c... tn_ide.c src\mess\machine\ti99\tn_ide.c(193) : warning C4333: '>>' : right shift by too large amount, data loss src\mess\machine\ti99\tn_ide.c(204) : warning C4333: '>>' : right shift by too large amount, data loss Compiling src/mess/devices/bitbngr.c... bitbngr.c src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float'
|
|
|
|
Joined: Feb 2000
Posts: 219 Likes: 1
Senior Member
|
Senior Member
Joined: Feb 2000
Posts: 219 Likes: 1 |
Compiling src/mess/devices/bitbngr.c... bitbngr.c src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(179) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' src\mess\devices\bitbngr.c(180) : warning C4305: 'initializing' : truncation from 'double' to 'float' I wrote that code. I don't understand the warning. I create an array of floats using numeric constants: float tunes[] = {0.97, 0.9825, 0.985, 0.9875, 0.99, 0.9925, 0.995, 0.9975, 1.0,
1.0025, 1.005, 1.0075, 1.01, 1.0125, 1.015, 1.0175, 1.02}; I could switch the whole thing to double, but the extra precision is unnecessary.
tim lindner tlindner@macmess.org
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
MSVC is unnecessarily strict about float constants needing an "f" on the end. So 0.97f, 0.9825f, etc. should make it shut up.
|
|
|
0 members (),
305
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,923
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|