Code Monkey home page Code Monkey logo

maplepad's Issues

Implement continuous vibration and AST

Description:
Continuous vibration and AST (auto-stop time) is the last part of Dreamcast Purupuru spec left to implement. I tried a naΓ―ve implementation of BlockWriting AST at some point last year, but it didn't work as expected. This might fix a variety of rumble-related bugs in retail SW.

To-do:

  • Use Colton's Purupuru tester homebrew add link to cdi here to refresh my memory on how this functionality works.
  • Verify I can store AST data when the DC sends it via BlockWrite
  • Does the DC ever read back AST data with BlockRead? I bet CE games do... need to implement this
  • Verify AST works to end continuous vibration

Arcade Stick version?

Is it possible to make an arcade stick version for this? Basically the same thing, but using C and Z buttons instead of L and R triggers, since digital inputs are better than analog for arcade sticks and games. It would be fantastic if this were possible!

Only works on first controller port

Finally got this working, but I wired one and I found that it only works on the first controller port.

I tried it on Marvel Vs Capcom 2, which grays out the Vs mode option if there are less than two controllers. The VS Mode option just blinks really fast if I connect a regular controller on the first port and a Maplepad to the second port. If I put MaplePad on the first and the stock controller on the second port, it works fine. Any ideas about what's going on?

Weak rumble in numerous titles

Description:
Some games exhibit weak/faint rumble during gameplay. None seem to be WinCE games.

  • Maybe a bug in the vibeHandler function? (unlikely)
  • Or these games use continuous vibration, and the incomplete implementation is only generating one pulse and ending, instead of repeating the pulse until AST is hit (more likely)

To-do:
Capture logic traces with HKT-7700+Performance TremorPak and MaplePad to compare behavior.

Affected titles:
(tested on 1.4b)

  • Fighting Vipers 2
  • Looney Tunes Space Race
  • Macross
  • Marvel vs Capcom
  • Mr. Driller
  • Powerstone 2
  • Sega Marine Fishing
  • Soul Calibur

Rumble issues in Windows CE titles

Description:
One of many, many problems with WinCE software. Some titles don't detect rumble at all. Some titles advise that an unsupported accessory has been connected when rumble is enabled, and work fine with rumble disabled. Sega Rally 2 seems to detect rumble, but hard crashes when rumble actually activates in-game, i.e. when the DC sends a setCondition packet to MaplePad (how this is even possible is beyond me.)

This is probably a packet format issue, or a packet that isn't being handled correctly by MaplePad. I already fixed some bugs where MaplePad wasn't responding to GetMediaInfo packets properly, so maybe there are more issues like that lurking in the code. The worst possible scenario would be if the vibeHandler timer ISR is somehow interfering with the receipt/transmission of rumble-related packets. Also, maybe continuous vibration/AST not being implemented is causing problems...? Really need to address that.

To-do:
Capture logic traces with HKT-7700+stock VMU and MaplePad to compare behavior. Some analysis of Sega Rally 2 already performed last year.

Affected titles:
(tested on 1.4b/c)

  • 4x4 Evolution (VMU icon shows up, but disappears. VMU isn't recognized as formatted)
  • Bust-A-Move 4
  • Ducati World Racing
  • Hundred Swords
  • Q*bert
  • Resident Evil 2
  • Sega Rally 2 (poster child for WinCE issues)
  • Tom Clancy's Rainbow Six

Crazy Taxi – Rumble Issue

Description:
In the settings menu of Crazy Taxi, enabling rumble will cause the rumble motor to run forever, or until the game sends a new rumble command (setCondition) during gameplay.

This is probably a continuous vibration/AST-related issue. See #15

To-do:
Capture logic traces with HKT-7700+Performance TremorPak and MaplePad to compare behavior. Confirm that the game BlockWrites a new AST to the Performance TremorPak, and that it triggers a continuous vibration when rumble is enabled in the settings menu.

Affected titles:

  • Crazy Taxi

Random disconnection

I'm use the release v1.4c-arcade on my raspberry pico. In memory menu on bios look like i connect and quickly disconnect the controller, and in 240p test suite in "Maple Devices" item, when i select the maplepad or another controller, the maplepad "disconnect" when I back to menu.

PS: Thanks to your dedication for this project

Conflict Zone – Unsupported Device

Description:
Conflict Zone's title screen says an unsupported device is connected and will not proceed further. Fixing this might help with other WinCE titles.

To-do:
Capture logic traces with HKT-7700 and MaplePad to compare behavior.

Affected titles:

  • Conflict Zone

Support SOCD cleaning (Simultaneous Opposing Cardinal Directions)

It would be nice if MaplePad supported (if it doesn't already) SOCD cleaning, which is used on button style joysticks (Hitbox). Often games don't know how to handle opposite directions since they were made with Joysticks / D-Pads in mind.

Ideally it would have options for different types of SOCD options:

  • Off (don't filter)
  • Neutral (L + R = None & U + D = None)
  • Neutral/Up (L + R = None & U + D = U)
  • Last Win (L -> R = R)
  • First Win (L -> R = L)

Erroneous Right/Down constant pressing when used with separate controller.

I am current using the software of this project as a separate VMU to use with my console, it appears and functions perfectly however it will cause the directional pad Right or Down operations to constantly occur after being pressed on a controller connected to a different port. This can be fixed by pressing the button again, but makes any sort of gameplay incredibly difficult.

KISS Psycho Circus – Unsupported Device

Description:
KISS Psycho Circus' title screen says an unsupported device is connected and will not proceed further. Fixing this might help with other WinCE titles.

To-do:
Capture logic traces with HKT-7700 and MaplePad to compare behavior.

Affected titles:

  • KISS Psycho Circus

Joystick range issues in numerous titles

Description:
Some games don't respond to diagonal joystick inputs properly.

To-do:
Capture logic traces with HKT-7700 and MaplePad to compare behavior. Maybe try a set joystick motion (like a clockwise circle) to capture the full range of values. Might need to use a debug load on MaplePad to print out stick values.

Affected titles:
(tested on 1.4c)

  • Blue Stinger
  • Star Wars Jedi Power Battles

I2C OLED can't working and bug on 1.4b pio version

hi Sir

bug1
test 1.4b pio and found the i2c OLED display can't working , once connect I2C OLED display Dreamcast was disconnect PIO board
the screen on OLED as below
image

bug2
for the VMU, when format or copy some game save file on the VMU's last page (8th page) some times Dreamcast will disconnect the PIO board and need re-plug pio board for fix it

suggestion
now the FW is 1.4d but can't working on PIO board as my tested , is it possible for keep update PIO version FW?
and is it possible for read VMU file via USB port?

System thinks VMU has an executable file installed

Description:
Homebrew and retail SW seem to think the virtual VMUs have executable files (i.e. VMU minigames) installed, even when they're freshly formatted on a first boot.

To-do:
Read through VMU filesystem docs and figure out how executable file presence is specified, and what's wrong with MaplePad's implementation. Maybe a FAT thing?

VMU not working in Windows CE titles

Description:
One of many, many problems with WinCE software. Some titles sort of detect the VMU, while others don't detect it at all. Some games seem to constantly connect/disconnect the controller (VMU packets clearly aren't passing some sort of sanity or CRC check, so the Maple device is being disconnected as per the spec) which can result in frame drops, stuttering and crashes in-game.

It's likely there's some underlying issue with the packet format, Maple Bus PIO engine, or packet state machine that WinCE titles are simply more sensitive to than software made with the normal SDK. There might be an additional packet format that isn't documented in the early Sega docs, or a packet I haven't implemented correctly. It could also be a MaplePad response speed issue, since tests indicates WinCE titles spam Maple reads much more rapidly than normal SDK games.

To-do:
Capture logic traces with HKT-7700+stock VMU and MaplePad to compare behavior.

Affected titles:
(tested on 1.4b/c)

  • 4x4 Evolution (VMU icon shows up, but disappears. VMU isn't recognized as formatted)
  • Armada
  • Bust-A-Move 4
  • Ducati World Racing
  • Half Life (Says VMU is full)
  • Hoyle Casino
  • Hundred Swords
  • Midway's Greatest Arcade Hits
  • Nightmare Creatures II
  • Q*bert
  • Rayman 2
  • Resident Evil 2
  • Sega Rally 2 (poster child for WinCE issues)
  • Sno-Cross Championship Racing
  • Tom Clancy's Rainbow Six
  • Wild Metal
  • Worms Armageddon
  • Worms World Party

BOM location

This is great. I downloaded it. But the BOM list doesn't mark the locations. Hope you can mark them. Thanks

Rumble not detected in some non-CE titles

Description:
A few non-CE games still don't detect rumble. Probably a trivial error in packet formats or the way MaplePad responds to certain DC packets; I already fixed a similar issue caused by MaplePad not responding to GetMediaInfo with the Purupuru-specific info packet.

To-do:
Capture logic traces with HKT-7700+stock VMU and MaplePad to compare behavior.

Affected titles:
(tested on 1.4c)

  • Evil Dead: Hail to the King
  • Red Dog
  • Wacky Races

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.