trunk/src/emu/cpu/arcompact/arcompactdasm.c
| r242260 | r242261 | |
| 1094 | 1094 | // this is as messed up as the rest of the 16-bit alignment in LE mode... |
| 1095 | 1095 | |
| 1096 | 1096 | #define GET_LIMM \ |
| 1097 | | limm = oprom[6] | (oprom[7] << 8); \ |
| 1098 | | limm |= (oprom[4] << 16) | (oprom[5] << 24); \ |
| 1097 | limm = oprom[4] | (oprom[5] << 8); \ |
| 1098 | limm |= (oprom[2] << 16) | (oprom[3] << 24); \ |
| 1099 | 1099 | |
| 1100 | 1100 | |
| 1101 | 1101 | int arcompact_handle0e_00_dasm(DASM_OPS_16) |
| r242260 | r242261 | |
| 1640 | 1640 | { |
| 1641 | 1641 | int size = 2; |
| 1642 | 1642 | |
| 1643 | | UINT32 op = oprom[2] | (oprom[3] << 8); |
| 1643 | UINT32 op = oprom[0] | (oprom[1] << 8); |
| 1644 | 1644 | output = buffer; |
| 1645 | 1645 | |
| 1646 | 1646 | UINT8 instruction = ARCOMPACT_OPERATION; |
| r242260 | r242261 | |
| 1649 | 1649 | { |
| 1650 | 1650 | size = 4; |
| 1651 | 1651 | op <<= 16; |
| 1652 | | op |= oprom[0] | (oprom[1] << 8); |
| 1652 | op |= oprom[2] | (oprom[3] << 8); |
| 1653 | 1653 | |
| 1654 | 1654 | op &= ~0xf8000000; |
| 1655 | 1655 | |
trunk/src/mess/drivers/leapster.c
| r242260 | r242261 | |
| 224 | 224 | |
| 225 | 225 | UINT32 screen_update_leapster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 226 | 226 | DECLARE_DEVICE_IMAGE_LOAD_MEMBER(leapster_cart); |
| 227 | DECLARE_DRIVER_INIT(leapster); |
| 227 | 228 | |
| 228 | 229 | protected: |
| 229 | 230 | required_device<generic_slot_device> m_cart; |
| r242260 | r242261 | |
| 304 | 305 | ROM_LOAD( "am29pl160cb-90sf.bin", 0x00000, 0x200000, BAD_DUMP CRC(dc281f1f) SHA1(17588de54ab3bb82801bd5062f3e6aa687412178) ) |
| 305 | 306 | ROM_END |
| 306 | 307 | |
| 308 | DRIVER_INIT_MEMBER(leapster_state,leapster) |
| 309 | { |
| 310 | // the CPU is apparently Little Endian (or 'middle endian') but according to documentation definitely NOT 'Big Endian' |
| 311 | // a regular ROM order with sensible DASM function makes sense for the 16-bit code, but not for the 32-bit code?! (or initial PC isn't at 0 / there is missing code?) |
| 307 | 312 | |
| 308 | | CONS(2003, leapster, 0, 0, leapster, leapster, driver_device, 0, "LeapFrog", "Leapster (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON ) |
| 309 | | CONS(2005, leapstertv, leapster, 0, leapster, leapster, driver_device, 0, "LeapFrog", "Leapster TV (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON ) |
| 313 | // do PC = 460c0 to see some code |
| 314 | |
| 315 | #if 0 |
| 316 | UINT16 *ROM = (UINT16*)memregion("maincpu")->base(); |
| 317 | for (int i = 0; i < 0x200000 / 2; i += 2) |
| 318 | { |
| 319 | UINT16 temp = ROM[i]; |
| 320 | ROM[i] = ROM[i + 1];; |
| 321 | ROM[i + 1] = temp; |
| 322 | } |
| 323 | #endif |
| 324 | } |
| 325 | |
| 326 | CONS(2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON ) |
| 327 | CONS(2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON ) |