-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sega/sega_beena.cpp: Add TV Ocha-Ken barcode card rendering
- Loading branch information
Showing
3 changed files
with
286 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
<?xml version="1.0"?> | ||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> | ||
<!-- | ||
license:CC0-1.0 | ||
--> | ||
<softwarelist name="tvochken" description="TV Ocha-Ken ROM and barcode cards"> | ||
|
||
<software name="tvochken" supported="yes"> | ||
<description>TV to Ocha-Satsu Ocha-Ken Hotsu to Seikatsu</description> | ||
<year>2005</year> | ||
<publisher>Sega Toys</publisher> | ||
<info name="alt_title" value="テレビとお茶札 お茶犬『ほっ』と生活"/> | ||
<part name="cart" interface="tvochken"> | ||
<dataarea name="rom" size="0x400000" width="32" endianness="big"> | ||
<rom loadflag="load16_word_swap" name="m5m29gt320vp-80.u3" size="0x400000" crc="75c1fbc1" sha1="b07adcabaadb8b684335f52dd953f4696585c819"/> | ||
</dataarea> | ||
<dataarea name="card1" size="0x4f1749"> | ||
<rom name="0 - 0001.png" size="0x4f1749" crc="c5432bb7" sha1="375fb553245e88d37977f6a831ede72cf7c94eb8"/> | ||
</dataarea> | ||
<dataarea name="card2" size="0x4df6f0"> | ||
<rom name="0 - 0002.png" size="0x4df6f0" crc="6c83c38a" sha1="616a796615423e1eaa05a2637cd606d5816c7f01"/> | ||
</dataarea> | ||
<dataarea name="card3" size="0x4f220b"> | ||
<rom name="0 - 0003.png" size="0x4f220b" crc="a14f9d50" sha1="a3bce401fe3c70bef046addb4cbc31c5e0f04f0f"/> | ||
</dataarea> | ||
<dataarea name="card4" size="0x4f1602"> | ||
<rom name="0 - 0004.png" size="0x4f1602" crc="1c124ccf" sha1="840a3ee78ae0995b9b9fa9428da18d0ecd293f88"/> | ||
</dataarea> | ||
<dataarea name="card5" size="0x505a3a"> | ||
<rom name="0 - 0005.png" size="0x505a3a" crc="c7190bb3" sha1="e4d1307971c053fc7ad98b6b8bea19a639c88084"/> | ||
</dataarea> | ||
<dataarea name="card6" size="0x50cbd4"> | ||
<rom name="0 - 0006.png" size="0x50cbd4" crc="0ef3b099" sha1="b736179f3b34b8301b32f2f6ded732634c9c0f76"/> | ||
</dataarea> | ||
<dataarea name="card7" size="0x4da934"> | ||
<rom name="0 - 0007.png" size="0x4da934" crc="66e119c6" sha1="d3ddc0bc4bea354e767ff6cc9cf152ce84bd2b24"/> | ||
</dataarea> | ||
<dataarea name="card8" size="0x4eff47"> | ||
<rom name="0 - 0008.png" size="0x4eff47" crc="df475cf6" sha1="26ed60fb032b41464cc93582ab51b05ec61abf5c"/> | ||
</dataarea> | ||
<dataarea name="card9" size="0x4f423e"> | ||
<rom name="0 - 0009.png" size="0x4f423e" crc="d3f5b52c" sha1="157ec2a13e90381c5348352aafeffeb63f453f9c"/> | ||
</dataarea> | ||
<dataarea name="card10" size="0x58a781"> | ||
<rom name="0 - 0010.png" size="0x58a781" crc="dfae4f5e" sha1="515cd302381d9dcbefa69adaaa4c8bc13b661877"/> | ||
</dataarea> | ||
<dataarea name="card11" size="0x5b058b"> | ||
<rom name="0 - 0011.png" size="0x5b058b" crc="5bb62726" sha1="6199c01eb5fcc7de7fe90e89f3ee7140705caeba"/> | ||
</dataarea> | ||
<dataarea name="card12" size="0x5a279b"> | ||
<rom name="0 - 0012.png" size="0x5a279b" crc="b5d1111e" sha1="8b05ce9c1f74563ab9735645a5eb89a3cada74a5"/> | ||
</dataarea> | ||
<dataarea name="card13" size="0x4dc9ad"> | ||
<rom name="0 - 0013.png" size="0x4dc9ad" crc="707edf49" sha1="e7deac18147217e8128b5d8c440fc605c530da81"/> | ||
</dataarea> | ||
<dataarea name="card14" size="0x4ce76b"> | ||
<rom name="0 - 0014.png" size="0x4ce76b" crc="5c3ec4c2" sha1="a4954ed1710a87ee673d3a15b6dfdf5af46e80d6"/> | ||
</dataarea> | ||
<dataarea name="card15" size="0x531c9f"> | ||
<rom name="0 - 0015.png" size="0x531c9f" crc="3507b23e" sha1="ea12fa59718cdbbef6d7728e555176b76692c89b"/> | ||
</dataarea> | ||
<dataarea name="card16" size="0x5506d3"> | ||
<rom name="0 - 0016.png" size="0x5506d3" crc="6c3b995c" sha1="9f63ffa5ffec951af65dfb5ce432f13b0e1bd92b"/> | ||
</dataarea> | ||
<dataarea name="card17" size="0x50cfbd"> | ||
<rom name="0 - 0017.png" size="0x50cfbd" crc="a3cdf730" sha1="89035eeb714f45cac2ef0c9e8ee86d5ba50d04bb"/> | ||
</dataarea> | ||
<dataarea name="card18" size="0x4c9ed3"> | ||
<rom name="0 - 0018.png" size="0x4c9ed3" crc="8a0eaeb4" sha1="27131d1a642a27cea5ae1bb0c57fcd20d7e46f28"/> | ||
</dataarea> | ||
<dataarea name="card19" size="0x4e43a3"> | ||
<rom name="0 - 0019.png" size="0x4e43a3" crc="425cfb05" sha1="e62e0ae7da3aa45afc5d7744277288df32925b96"/> | ||
</dataarea> | ||
<dataarea name="card20" size="0x4a67a5"> | ||
<rom name="0 - 0020.png" size="0x4a67a5" crc="1b3ddf36" sha1="f89981193f4a0f5438a8a4d05b29bba5832712f2"/> | ||
</dataarea> | ||
<dataarea name="card21" size="0x595884"> | ||
<rom name="0 - 0021.png" size="0x595884" crc="812535ac" sha1="0e88309e4629e352542e0f77c282add67d9e0eff"/> | ||
</dataarea> | ||
<dataarea name="card22" size="0x59e757"> | ||
<rom name="0 - 0022.png" size="0x59e757" crc="a3af7a1e" sha1="2ce48f5948d2b4aed80cff97e4443fb377a0dc75"/> | ||
</dataarea> | ||
<dataarea name="card23" size="0x5845cc"> | ||
<rom name="0 - 0023.png" size="0x5845cc" crc="7962f20b" sha1="1cdb601803881b6161818902253d3e2d5c0676ca"/> | ||
</dataarea> | ||
<dataarea name="card24" size="0x4cbaec"> | ||
<rom name="0 - 0024.png" size="0x4cbaec" crc="3fb7395c" sha1="2e9631bc27edc15e5be25c22a81f6f51fc1c6f20"/> | ||
</dataarea> | ||
<dataarea name="card25" size="0x57375d"> | ||
<rom name="0 - 0025.png" size="0x57375d" crc="b6dc9acd" sha1="fff3ebbea33f7261ae8ae4d4c7c3847b9cf3f88a"/> | ||
</dataarea> | ||
<dataarea name="card26" size="0x583f9c"> | ||
<rom name="0 - 0026.png" size="0x583f9c" crc="46033178" sha1="ef265ce7fafa88cebe4d8c199687e58b0a1375a3"/> | ||
</dataarea> | ||
<dataarea name="card27" size="0x586407"> | ||
<rom name="0 - 0027.png" size="0x586407" crc="2278b79b" sha1="911200fd9b2662e60849ad8d0d818ffc77166815"/> | ||
</dataarea> | ||
<dataarea name="card28" size="0x4e0094"> | ||
<rom name="0 - 0028.png" size="0x4e0094" crc="4ecefa48" sha1="8bb7c0e2a1f117e7c1c205fb6f68dd3b79d3608f"/> | ||
</dataarea> | ||
<dataarea name="card29" size="0x58ee04"> | ||
<rom name="0 - 0029.png" size="0x58ee04" crc="52cadc27" sha1="820a47efb41e1e52e3a0e75b8550983e2890fe23"/> | ||
</dataarea> | ||
<dataarea name="card30" size="0x59ffec"> | ||
<rom name="0 - 0030.png" size="0x59ffec" crc="0bedfd6a" sha1="781cd0be18c3a29015317ace95e3749182a9c5e5"/> | ||
</dataarea> | ||
<dataarea name="card31" size="0x52a465"> | ||
<rom name="0 - 0031.png" size="0x52a465" crc="6f1fb6df" sha1="430c170759010daa72318bd6bac07637fb03ac66"/> | ||
</dataarea> | ||
<dataarea name="card32" size="0x5794b4"> | ||
<rom name="0 - 0032.png" size="0x5794b4" crc="0bd168a3" sha1="63eb11961046c3c382e695f0cf8292f2dbba0861"/> | ||
</dataarea> | ||
<dataarea name="card33" size="0x4b665e"> | ||
<rom name="0 - 0033.png" size="0x4b665e" crc="03cf3ac0" sha1="55d58cb97d5f464982d3cba4915a78e50110dc28"/> | ||
</dataarea> | ||
<dataarea name="card34" size="0x5992ff"> | ||
<rom name="0 - 0034.png" size="0x5992ff" crc="4c1c285c" sha1="cde5d284ffa9a9a44c88529692e5bc9f6fffb0c7"/> | ||
</dataarea> | ||
<dataarea name="card35" size="0x523acd"> | ||
<rom name="0 - 0035.png" size="0x523acd" crc="612aa0c0" sha1="b302fbad590fb8db3624884614c9a8bd8108acac"/> | ||
</dataarea> | ||
<dataarea name="card36" size="0x5213b6"> | ||
<rom name="0 - 0036.png" size="0x5213b6" crc="befc985e" sha1="d1caa434da81b2d1e0773d5edc147800c6d48b7a"/> | ||
</dataarea> | ||
<dataarea name="card37" size="0x4ff7ee"> | ||
<rom name="0 - 0037.png" size="0x4ff7ee" crc="eb1b4883" sha1="b5a36c627f224dd7d1d6953ac68dcd3ec055950c"/> | ||
</dataarea> | ||
<dataarea name="card38" size="0x519ced"> | ||
<rom name="0 - 0038.png" size="0x519ced" crc="ccc3807c" sha1="1834dea6b2246452b54b0f0136539e9b87cc85d1"/> | ||
</dataarea> | ||
<dataarea name="card39" size="0x5322d6"> | ||
<rom name="0 - 0039.png" size="0x5322d6" crc="e38dba54" sha1="e42c4a29a384f177bbf3658a8f28306985d5cb78"/> | ||
</dataarea> | ||
<dataarea name="card40" size="0x4e717c"> | ||
<rom name="0 - 0040.png" size="0x4e717c" crc="d5222fa8" sha1="32f55c769f00e44beff9539241ab974bb94ebe98"/> | ||
</dataarea> | ||
<dataarea name="card41" size="0x512de5"> | ||
<rom name="0 - 0041.png" size="0x512de5" crc="5d763c3c" sha1="eb7e09b68e77bfe92fe2699c8c2010f9e7ea0dfb"/> | ||
</dataarea> | ||
<dataarea name="card42" size="0x500827"> | ||
<rom name="0 - 0042.png" size="0x500827" crc="b4413674" sha1="f2255d47156f7fb45043517928b1afa86cc2c8b8"/> | ||
</dataarea> | ||
<dataarea name="card43" size="0x516bd5"> | ||
<rom name="0 - 0043.png" size="0x516bd5" crc="04c35610" sha1="e7867e16ad3acdb5459059381880aceb11935475"/> | ||
</dataarea> | ||
<dataarea name="card44" size="0x51e8b7"> | ||
<rom name="0 - 0044.png" size="0x51e8b7" crc="5e5cde23" sha1="67161d59ae158286c86f0800366206daa8ff080e"/> | ||
</dataarea> | ||
<dataarea name="card45" size="0x51a367"> | ||
<rom name="0 - 0045.png" size="0x51a367" crc="2d06e5d6" sha1="7d82cbbb0cff2ad1710dfb025ff5517dd3fb6321"/> | ||
</dataarea> | ||
<dataarea name="card46" size="0x509b6a"> | ||
<rom name="0 - 0046.png" size="0x509b6a" crc="91b3cf44" sha1="7be818e4dbfa9ea8bad46270edb71fa899be6aa6"/> | ||
</dataarea> | ||
<dataarea name="card47" size="0x50b36f"> | ||
<rom name="0 - 0047.png" size="0x50b36f" crc="106f037e" sha1="eb2a5d056b5f19c53233765c813cdfb53746f30b"/> | ||
</dataarea> | ||
<dataarea name="card48" size="0x5073bd"> | ||
<rom name="0 - 0048.png" size="0x5073bd" crc="f4f2efeb" sha1="07774d7bde672d5b40142448691689edafe63421"/> | ||
</dataarea> | ||
<dataarea name="card49" size="0x521ed6"> | ||
<rom name="0 - 0049.png" size="0x521ed6" crc="0cf9a850" sha1="b92be28de3c8284d75045b161a37e8eb52c16e83"/> | ||
</dataarea> | ||
<dataarea name="card50" size="0x4f7f34"> | ||
<rom name="0 - 0050.png" size="0x4f7f34" crc="a918012a" sha1="a5a96c2c0a2ec76a3ec1784faaade33e0b8743e2"/> | ||
</dataarea> | ||
</part> | ||
</software> | ||
|
||
</softwarelist> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<?xml version="1.0"?> | ||
<!-- | ||
license:CC0-1.0 | ||
--> | ||
<mamelayout version="2"> | ||
<element name="card"> | ||
<!-- force maximum state --> | ||
<rect state="0"><color alpha="0" /></rect> | ||
<rect state="49"><color alpha="0" /></rect> | ||
</element> | ||
|
||
<view name="Default View"> | ||
<screen index="0"> | ||
<bounds x="0" y="0" width="4" height="3" /> | ||
</screen> | ||
|
||
<element id="card" ref="card"> | ||
<bounds x="0" y="3.1" width="4" height="2.66666" /> | ||
</element> | ||
</view> | ||
|
||
<script><![CDATA[ | ||
file:set_resolve_tags_callback( | ||
function () | ||
-- get memory regions for card scans | ||
local cards = { } | ||
for i = 1, 50 do | ||
local card = file.device:memregion(string.format('cartslot:card%u', i)) | ||
if card ~= nil then | ||
cards[i] = card | ||
else | ||
break | ||
end | ||
end | ||
-- card items are needed on-the-fly | ||
local card = file.views['Default View'].items['card'] | ||
-- recompute target pen cursor size and area when necessary | ||
local curxoffs, curyoffs, curxscale, curyscale, curwidth, curheight | ||
file.views['Default View']:set_recomputed_callback( | ||
function () | ||
local lbounds = card.bounds | ||
curwidth = lbounds.width / 10 | ||
curheight = lbounds.height / 14 | ||
curxoffs = lbounds.x0 - (curwidth * 0.5) | ||
curyoffs = lbounds.y0 - (curheight * 0.5) | ||
curxscale = lbounds.width / 255 | ||
curyscale = lbounds.height / 255 | ||
end) | ||
-- make card display respond to card selection input | ||
local cardctrl = file.device:ioport('CARDS') | ||
local function get_card() return cardctrl:read() end | ||
card:set_element_state_callback(get_card) | ||
-- render cards | ||
local function draw_card(n, dest) | ||
local card = cards[n] | ||
if card ~= nil then | ||
-- TODO: reduce temporary memory usage when I/O classes are exposed to Lua | ||
local data = card:read(0, card.size) | ||
local image = emu.bitmap_argb32.load(data) | ||
image:resample(dest) | ||
end | ||
end | ||
file.elements['card']:set_draw_callback( | ||
function (state, bitmap) | ||
draw_card((state + 1) & 0x3f, bitmap) | ||
end) | ||
end) | ||
]]></script> | ||
</mamelayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters